@font-face {
  font-display: swap;
  font-family: "Google Sans Flex";
  font-style: normal;
  font-weight: 100 1000;
  src: url("/assets/fonts/google-sans-flex-variable.ttf") format("truetype");
}

@font-face {
  font-display: swap;
  font-family: "Roboto";
  font-stretch: 100%;
  font-style: normal;
  font-weight: 300 800;
  src: url("/assets/fonts/roboto-latin-ext-variable.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Quote supplier-offer workspace.
   This layer is intentionally fixed and fully namespaced: it never participates
   in the quote document layout and therefore cannot resize or move the A4 page. */
.sav-offer-import-panel,
.sav-offer-import-panel *,
.sav-offer-modal-backdrop,
.sav-offer-modal-backdrop * {
  box-sizing: border-box;
}

.sav-offer-import-panel {
  --offer-accent: var(--primary-color, #1a73e8);
  position: fixed;
  z-index: 2147482100;
  top: 58px;
  right: 8px;
  bottom: 8px;
  width: min(450px, calc(100vw - 24px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: #202124;
  background: #fff;
  border: 1px solid #dfe3eb;
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(32, 33, 36, 0.16), 0 2px 8px rgba(32, 33, 36, 0.08);
  font-family: var(--sav-font-family);
  isolation: isolate;
  contain: layout paint style;
}

.sav-offer-import-panel.is-expanded {
  inset: 58px 0 0 0;
  width: auto;
  border-radius: 0;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  box-shadow: 0 -1px 0 #dfe3eb;
}

.sav-offer-import-header {
  flex: 0 0 auto;
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid #e5e9f0;
}

.sav-offer-import-header small,
.sav-offer-import-card small {
  display: block;
  margin-bottom: 3px;
  color: #6b7280;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.25;
}

.sav-offer-import-header h2 {
  margin: 0;
  color: #111827;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
}

.sav-offer-expand-button,
.sav-offer-icon-button,
.sav-offer-line-import {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  color: #475569;
  background: #fff;
  border: 1px solid #d9e0ea;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.sav-offer-expand-button:hover,
.sav-offer-icon-button:hover,
.sav-offer-line-import:hover:not(:disabled) {
  color: var(--offer-accent);
  background: #f6f9ff;
  border-color: color-mix(in srgb, var(--offer-accent) 42%, #d9e0ea);
  box-shadow: 0 2px 7px rgba(15, 23, 42, 0.1);
}

.sav-offer-expand-button:active,
.sav-offer-icon-button:active,
.sav-offer-line-import:active:not(:disabled) {
  transform: translateY(1px);
}

.sav-offer-expand-button svg,
.sav-offer-icon-button svg,
.sav-offer-line-import svg,
.sav-offer-primary-button svg,
.sav-offer-dropzone svg,
.sav-offer-file-icon svg,
.sav-offer-panel-empty svg {
  width: 19px;
  height: 19px;
}

.sav-offer-import-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 14px;
  background: #f8fafc;
  scrollbar-gutter: stable;
}

.sav-offer-import-panel.is-expanded .sav-offer-import-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
  padding: 16px;
}

.sav-offer-import-panel.is-expanded .sav-offer-dropzone {
  display: none;
}

.sav-offer-import-panel.is-expanded .sav-offer-select-field {
  flex: 0 0 auto;
  margin-top: 0;
}

.sav-offer-import-panel.is-expanded .sav-offer-panel-empty {
  flex: 1 1 auto;
  margin-top: 0;
}

.sav-offer-expanded-workspace {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(620px, 0.92fr);
  gap: 16px;
  overflow: hidden;
}

.sav-offer-expanded-details {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 12px;
  overflow: hidden;
}

.sav-offer-dropzone {
  min-height: 124px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 16px;
  color: #475569;
  text-align: center;
  background: #fff;
  border: 1.5px dashed #b8c4d6;
  border-radius: 13px;
  cursor: pointer;
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

.sav-offer-dropzone:hover,
.sav-offer-dropzone:focus-visible,
.sav-offer-dropzone.is-dragging {
  outline: none;
  color: var(--offer-accent);
  background: #f7faff;
  border-color: var(--offer-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--offer-accent) 13%, transparent);
}

.sav-offer-dropzone strong {
  margin-top: 5px;
  color: #1f2937;
  font-size: 13px;
  font-weight: 600;
}

.sav-offer-dropzone span,
.sav-offer-dropzone small {
  color: #64748b;
  font-size: 11px;
  line-height: 1.35;
}

.sav-offer-select-field {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.sav-offer-select-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px;
  gap: 8px;
}

.sav-offer-delete-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  color: #d93025;
  background: #fff;
  border: 1px solid #f2b8b5;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.sav-offer-delete-button:hover {
  color: #b3261e;
  background: #fce8e6;
  border-color: #d93025;
  box-shadow: 0 2px 7px rgba(179, 38, 30, 0.14);
}

.sav-offer-delete-button:active {
  transform: translateY(1px);
}

.sav-offer-delete-button svg {
  width: 18px;
  height: 18px;
}

.sav-offer-select-field > span,
.sav-offer-modal label > span {
  color: #475569;
  font-size: 11px;
  font-weight: 600;
}

.sav-offer-select,
.sav-offer-modal select,
.sav-offer-modal input {
  width: 100%;
  height: 40px;
  padding: 0 12px;
  color: #111827;
  background: #fff;
  border: 1px solid #d5dce7;
  border-radius: 10px;
  font: inherit;
  font-size: 13px;
  outline: none;
}

.sav-offer-select:focus,
.sav-offer-modal select:focus,
.sav-offer-modal input:focus {
  border-color: var(--offer-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--offer-accent) 12%, transparent);
}

.sav-offer-import-card {
  margin-top: 12px;
  padding: 14px;
  background: #fff;
  border: 1px solid #e0e5ed;
  border-radius: 13px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.sav-offer-import-panel.is-expanded .sav-offer-import-card {
  margin-top: 0;
}

.sav-offer-import-panel.is-expanded .sav-offer-lines-card {
  min-height: 0;
  height: 100%;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}

.sav-offer-import-panel.is-expanded .sav-offer-lines-card > .sav-offer-card-heading,
.sav-offer-import-panel.is-expanded .sav-offer-lines-card > .sav-offer-lines-footer {
  flex: 0 0 auto;
}

.sav-offer-card-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.sav-offer-card-heading > div {
  min-width: 0;
  flex: 1 1 auto;
}

.sav-offer-card-heading strong {
  display: block;
  overflow: hidden;
  color: #172033;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  text-overflow: ellipsis;
}

.sav-offer-compare-button {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  color: #475569;
  background: #fff;
  border: 1px solid #d7dee9;
  border-radius: 9px;
  cursor: pointer;
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.sav-offer-compare-button:hover,
.sav-offer-compare-button:focus-visible {
  color: var(--offer-accent);
  background: #f8faff;
  border-color: color-mix(in srgb, var(--offer-accent) 40%, #d7dee9);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  outline: none;
}

.sav-offer-compare-button svg {
  width: 17px;
  height: 17px;
}

.sav-offer-file-icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: #d93025;
  background: #fce8e6;
  border-radius: 10px;
}

.sav-offer-status {
  flex: 0 0 auto;
  max-width: 130px;
  padding: 5px 8px;
  overflow: hidden;
  color: #5f6368;
  background: #f1f3f4;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sav-offer-status.is-done {
  color: #137333;
  background: #e6f4ea;
}

.sav-offer-status.is-error {
  color: #b3261e;
  background: #fce8e6;
}

.sav-offer-status.is-uploading,
.sav-offer-status.is-extracting,
.sav-offer-status.is-queued {
  color: #8a4b00;
  background: #fef7e0;
}

.sav-offer-file-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  margin: 14px 0 0;
}

.sav-offer-file-meta div {
  min-width: 0;
}

.sav-offer-file-meta dt {
  color: #6b7280;
  font-size: 10px;
}

.sav-offer-file-meta dd {
  margin: 2px 0 0;
  overflow: hidden;
  color: #1f2937;
  font-size: 11px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sav-offer-supplier-card p {
  margin: 8px 0 0;
  color: #64748b;
  font-size: 11px;
  line-height: 1.4;
}

.sav-offer-secondary-button,
.sav-offer-choice-button {
  width: 100%;
  min-height: 36px;
  margin-top: 12px;
  padding: 8px 12px;
  color: #334155;
  background: #fff;
  border: 1px solid #d7dee9;
  border-radius: 9px;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.sav-offer-secondary-button:hover,
.sav-offer-choice-button:hover {
  color: var(--offer-accent);
  background: #f8faff;
  border-color: color-mix(in srgb, var(--offer-accent) 40%, #d7dee9);
}

.sav-offer-lines-card {
  padding-right: 0;
  padding-left: 0;
  overflow: hidden;
}

.sav-offer-lines-card > .sav-offer-card-heading,
.sav-offer-lines-card > .sav-offer-lines-footer {
  margin-right: 14px;
  margin-left: 14px;
}

.sav-offer-lines-scroller {
  max-height: 360px;
  margin-top: 12px;
  overflow-x: auto;
  overflow-y: auto;
  border-top: 1px solid #e5e9f0;
  border-bottom: 1px solid #e5e9f0;
  scrollbar-gutter: stable;
}

.sav-offer-import-panel.is-expanded .sav-offer-lines-scroller {
  flex: 1 1 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  touch-action: pan-y;
}

.sav-offer-lines-table {
  width: 100%;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  font-size: 10px;
}

.sav-offer-lines-table .sav-offer-col-description { width: 33%; }
.sav-offer-lines-table .sav-offer-col-quantity { width: 9%; }
.sav-offer-lines-table .sav-offer-col-unit { width: 7%; }
.sav-offer-lines-table .sav-offer-col-unit-price { width: 12%; }
.sav-offer-lines-table .sav-offer-col-total { width: 12%; }
.sav-offer-lines-table .sav-offer-col-comments { width: 17%; }
.sav-offer-lines-table .sav-offer-col-actions { width: 10%; }

.sav-offer-import-panel:not(.is-expanded) .sav-offer-lines-table {
  min-width: 600px;
}

.sav-offer-lines-table th {
  position: sticky;
  z-index: 2;
  top: 0;
  height: 34px;
  padding: 7px 8px;
  color: #475569;
  text-align: left;
  background: #f8fafc;
  border-bottom: 1px solid #dce3ed;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  white-space: nowrap;
}

.sav-offer-lines-table th:nth-child(n + 2):nth-child(-n + 5) {
  padding-right: 4px;
  padding-left: 4px;
  text-align: right;
}

.sav-offer-lines-table th:nth-child(3) {
  text-align: center;
}

.sav-offer-lines-table th:last-child {
  text-align: center;
}

.sav-offer-lines-table td {
  min-width: 0;
  padding: 7px 8px;
  color: #334155;
  vertical-align: middle;
  background: #fff;
  border-bottom: 1px solid #edf0f5;
  line-height: 1.35;
}

.sav-offer-lines-table td:nth-child(n + 2):nth-child(-n + 5) {
  padding-right: 4px;
  padding-left: 4px;
  text-align: right;
  white-space: nowrap;
}

.sav-offer-lines-table td:nth-child(3) {
  text-align: center;
}

.sav-offer-lines-table td:nth-child(3) .sav-offer-line-input {
  padding-right: 2px;
  padding-left: 2px;
  text-align: center;
}

.sav-offer-lines-table td:last-child {
  padding-right: 4px;
  padding-left: 4px;
  text-align: center;
}

.sav-offer-line-comment-cell {
  padding-right: 6px !important;
  padding-left: 6px !important;
  white-space: normal;
}

.sav-offer-lines-table tr.is-imported td {
  color: #718096;
  background: #f8fafc;
}

.sav-offer-lines-table tr.is-imported td:first-child {
  text-decoration: line-through;
}

.sav-offer-line-import {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  color: var(--offer-accent);
  border-radius: 7px;
}

.sav-offer-line-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 0;
}

.sav-offer-line-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  padding: 0;
  color: #c5221f;
  background: #fff;
  border: 1px solid #f2c6c5;
  border-radius: 8px;
  line-height: 0;
  vertical-align: middle;
  cursor: pointer;
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease;
}

.sav-offer-line-delete:hover,
.sav-offer-line-delete:focus-visible {
  color: #a50e0e;
  background: #fce8e6;
  border-color: #e9a3a0;
  outline: none;
}

.sav-offer-line-import svg,
.sav-offer-line-delete svg {
  display: block;
  width: 13px;
  height: 13px;
}

.sav-offer-import-panel.is-expanded .sav-offer-line-import,
.sav-offer-import-panel.is-expanded .sav-offer-line-delete {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
}

.sav-offer-import-panel.is-expanded .sav-offer-line-import svg,
.sav-offer-import-panel.is-expanded .sav-offer-line-delete svg {
  width: 15px;
  height: 15px;
}

.sav-offer-line-import:disabled {
  color: #188038;
  background: #e6f4ea;
  border-color: #c6e7cf;
  cursor: default;
}

.sav-offer-line-input {
  width: 100%;
  min-width: 0;
  height: 30px;
  padding: 4px 6px;
  color: #1f2937;
  background: #fff;
  border: 1px solid #d9e0ea;
  border-radius: 7px;
  font: inherit;
  outline: none;
}

.sav-offer-line-input.is-numeric {
  padding-right: 5px;
  padding-left: 3px;
  text-align: right;
  white-space: nowrap;
}

.sav-offer-line-input:focus {
  border-color: var(--offer-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--offer-accent) 11%, transparent);
}

@media (max-width: 720px) {
  .sav-offer-lines-scroller,
  .sav-offer-import-panel.is-expanded .sav-offer-lines-scroller {
    overflow-x: auto;
  }

  .sav-offer-lines-table {
    min-width: 600px;
    font-size: 9px;
  }

  .sav-offer-lines-table th,
  .sav-offer-lines-table td {
    padding-right: 4px;
    padding-left: 4px;
  }

  .sav-offer-line-import,
  .sav-offer-line-delete {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }
}

.sav-offer-line-warning {
  display: block;
  margin: 0;
  color: #a15c00;
  font-size: 9px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.sav-offer-primary-button {
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
  padding: 9px 14px;
  color: #fff;
  background: var(--offer-accent);
  border: 0;
  border-radius: 10px;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: filter 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.sav-offer-primary-button:not(:disabled):hover {
  filter: brightness(0.94);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--offer-accent) 25%, transparent);
}

.sav-offer-primary-button:disabled {
  color: #6b7280;
  background: #e8ebf0;
  cursor: default;
}

.sav-offer-lines-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
}

.sav-offer-lines-footer .sav-offer-primary-button {
  min-width: 118px;
  margin-top: 0;
}

.sav-offer-import-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
}

.sav-offer-import-state > span {
  width: 7px;
  height: 7px;
  background: currentColor;
  border-radius: 999px;
}

.sav-offer-import-state.is-pending {
  color: #c5221f;
}

.sav-offer-import-state.is-complete {
  color: #137333;
}

.sav-offer-source-preview {
  display: none;
}

.sav-offer-import-panel.is-expanded .sav-offer-source-preview {
  min-width: 0;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  padding: 14px;
}

.sav-offer-preview-toggle {
  flex: 0 0 auto;
  min-width: 78px;
  height: 34px;
  padding: 0 12px;
  color: #334155;
  background: #fff;
  border: 1px solid #d7dee9;
  border-radius: 9px;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.sav-offer-preview-toggle:hover,
.sav-offer-preview-toggle:focus-visible {
  color: var(--offer-accent);
  background: #f8faff;
  border-color: color-mix(in srgb, var(--offer-accent) 40%, #d7dee9);
  outline: none;
}

.sav-offer-source-preview-frame {
  width: 100%;
  height: clamp(560px, 72vh, 960px);
  margin-top: 14px;
  overflow: hidden;
  background: #eef1f5;
  border: 1px solid #dce3ed;
  border-radius: 11px;
}

.sav-offer-import-panel.is-expanded .sav-offer-source-preview-frame {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
}

.sav-offer-source-preview-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  border: 0;
}

.sav-offer-source-preview-empty {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
  padding: 24px;
  color: #64748b;
  text-align: center;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: 11px;
}

.sav-offer-source-preview-empty svg {
  width: 28px;
  height: 28px;
}

.sav-offer-source-preview-empty strong {
  color: #334155;
  font-size: 13px;
}

.sav-offer-source-preview-empty span {
  max-width: 340px;
  font-size: 11px;
  line-height: 1.45;
}

.sav-offer-source-modal-backdrop {
  z-index: 2147483200;
  padding: 24px;
}

.sav-offer-modal.sav-offer-source-modal {
  width: min(1800px, calc(100vw - 48px));
  height: min(1080px, calc(100vh - 48px));
  max-height: none;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.sav-offer-source-modal > header > div {
  min-width: 0;
}

.sav-offer-source-modal > header small {
  display: block;
  margin-bottom: 3px;
  color: #64748b;
  font-size: 10px;
}

.sav-offer-source-modal > header h2 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sav-offer-source-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 12px;
  background: #eef1f5;
}

.sav-offer-source-modal-body iframe {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  border: 0;
  border-radius: 10px;
}

.sav-offer-comparison-backdrop {
  z-index: 2147483200;
  padding: 16px;
}

.sav-offer-modal.sav-offer-comparison-modal {
  width: min(1880px, calc(100vw - 32px));
  height: min(1160px, calc(100vh - 32px));
  max-height: none;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.sav-offer-comparison-modal > header > div {
  min-width: 0;
}

.sav-offer-comparison-modal > header small {
  display: block;
  margin-bottom: 3px;
  color: #64748b;
  font-size: 10px;
}

.sav-offer-comparison-modal > header h2 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sav-offer-comparison-body {
  --sav-offer-comparison-split: 50%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  gap: 0;
  padding: 12px;
  overflow: hidden;
  background: #eef1f5;
}

.sav-offer-comparison-pdf-pane,
.sav-offer-comparison-table-pane {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dce3ed;
}

.sav-offer-comparison-pdf-pane {
  flex: 0 0 var(--sav-offer-comparison-split);
  border-radius: 11px 0 0 11px;
}

.sav-offer-comparison-pdf-pane iframe {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  border: 0;
}

.sav-offer-comparison-table-pane {
  flex: 1 1 auto;
  border-radius: 0 11px 11px 0;
}

.sav-offer-comparison-divider {
  position: relative;
  z-index: 3;
  flex: 0 0 12px;
  display: grid;
  place-items: center;
  cursor: col-resize;
  touch-action: none;
  outline: none;
}

.sav-offer-comparison-divider::before {
  content: "";
  position: absolute;
  inset: 0 4px;
  background: #d7dee9;
  transition: background-color 150ms ease;
}

.sav-offer-comparison-divider span {
  position: relative;
  width: 4px;
  height: 42px;
  background: #94a3b8;
  border-radius: 999px;
  transition: background-color 150ms ease, transform 150ms ease;
}

.sav-offer-comparison-divider:hover::before,
.sav-offer-comparison-divider:focus-visible::before,
.sav-offer-comparison-resizing .sav-offer-comparison-divider::before {
  background: color-mix(in srgb, var(--offer-accent) 20%, #d7dee9);
}

.sav-offer-comparison-divider:hover span,
.sav-offer-comparison-divider:focus-visible span,
.sav-offer-comparison-resizing .sav-offer-comparison-divider span {
  background: var(--offer-accent);
  transform: scaleY(1.12);
}

.sav-offer-comparison-resizing,
.sav-offer-comparison-resizing * {
  cursor: col-resize !important;
  user-select: none !important;
}

.sav-offer-comparison-lines-card {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.sav-offer-comparison-lines-card > .sav-offer-card-heading {
  flex: 0 0 auto;
  min-height: 58px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.sav-offer-comparison-lines-card > .sav-offer-lines-scroller {
  flex: 1 1 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  margin-top: 0;
  overflow-x: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.sav-offer-comparison-lines-card > .sav-offer-lines-footer {
  flex: 0 0 auto;
  min-height: 62px;
}

.sav-offer-comparison-lines-card .sav-offer-lines-table {
  font-size: 11px;
}

.sav-offer-comparison-lines-card .sav-offer-line-import,
.sav-offer-comparison-lines-card .sav-offer-line-delete {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
}

.sav-offer-comparison-lines-card .sav-offer-line-import svg,
.sav-offer-comparison-lines-card .sav-offer-line-delete svg {
  width: 15px;
  height: 15px;
}

.sav-offer-comparison-error {
  margin: 10px 12px 0;
}

.sav-offer-panel-empty {
  min-height: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 12px;
  padding: 24px;
  color: #64748b;
  text-align: center;
  background: #fff;
  border: 1px solid #e0e5ed;
  border-radius: 13px;
}

.sav-offer-panel-empty strong {
  color: #334155;
  font-size: 13px;
}

.sav-offer-panel-empty span {
  max-width: 280px;
  font-size: 11px;
  line-height: 1.45;
}

.sav-offer-error {
  margin: 10px 0 0;
  padding: 8px 10px;
  color: #b3261e;
  background: #fce8e6;
  border-radius: 8px;
  font-size: 11px;
  line-height: 1.4;
}

.sav-offer-panel-error {
  margin: 0 0 10px;
  padding: 9px 11px;
  color: #b3261e;
  background: #fce8e6;
  border: 1px solid #f3c7c3;
  border-radius: 9px;
  font-size: 11px;
  line-height: 1.4;
}

.sav-offer-empty-row {
  height: 80px;
  color: #6b7280 !important;
  text-align: center !important;
}

.sav-offer-modal-backdrop {
  position: fixed;
  z-index: 2147483000;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(30, 41, 59, 0.42);
  backdrop-filter: blur(2px);
}

.sav-supplier-create-backdrop.sav-supplier-create-backdrop-local {
  z-index: 2147483300 !important;
}

.sav-offer-modal {
  width: min(460px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  overflow: auto;
  color: #202124;
  background: #fff;
  border: 1px solid #dce2eb;
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
  font-family: var(--sav-font-family);
}

.sav-offer-modal > header {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid #e5e9f0;
}

.sav-offer-modal h2 {
  margin: 0;
  color: #111827;
  font-size: 18px;
  font-weight: 600;
}

.sav-offer-modal > header button {
  width: 32px;
  height: 32px;
  padding: 0;
  color: #64748b;
  background: transparent;
  border: 0;
  border-radius: 8px;
  font-size: 22px;
  cursor: pointer;
}

.sav-offer-modal > header button:hover {
  background: #f1f5f9;
}

.sav-offer-modal-body {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.sav-offer-modal-body p {
  margin: 0;
  color: #334155;
  font-size: 13px;
  line-height: 1.5;
}

.sav-offer-modal-body .sav-offer-modal-help {
  margin-top: -10px;
  color: #64748b;
  font-size: 11px;
}

.sav-offer-modal label {
  display: grid;
  gap: 7px;
}

.sav-offer-margin-field {
  display: grid;
  grid-template-columns: 1fr 42px;
}

.sav-offer-margin-field input {
  border-radius: 10px 0 0 10px;
}

.sav-offer-margin-field > span {
  display: grid;
  place-items: center;
  color: #475569;
  background: #f8fafc;
  border: 1px solid #d5dce7;
  border-left: 0;
  border-radius: 0 10px 10px 0;
  font-size: 12px;
  font-weight: 600;
}

.sav-offer-modal label > small {
  color: #64748b;
  font-size: 10px;
}

.sav-offer-modal > footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 18px;
  background: #fbfcfe;
  border-top: 1px solid #e5e9f0;
}

.sav-offer-modal-secondary,
.sav-offer-modal-primary,
.sav-offer-modal-danger {
  min-width: 118px;
  min-height: 40px;
  padding: 9px 14px;
  border-radius: 10px;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.sav-offer-modal-secondary {
  color: #475569;
  background: #fff;
  border: 1px solid #d5dce7;
}

.sav-offer-modal-primary {
  color: #fff;
  background: var(--primary-color, #1a73e8);
  border: 1px solid transparent;
}

.sav-offer-modal-danger {
  color: #fff;
  background: #d93025;
  border: 1px solid transparent;
}

.sav-offer-modal-danger:hover:not(:disabled) {
  background: #b3261e;
}

.sav-offer-modal-danger:disabled {
  color: #718096;
  background: #e8ebf0;
  cursor: wait;
}

.sav-offer-modal-primary:disabled {
  color: #718096;
  background: #e8ebf0;
  cursor: default;
}

.sav-offer-existing-choice {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 10px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}

.sav-offer-existing-choice[hidden] {
  display: none;
}

.sav-offer-existing-choice .sav-offer-modal-primary {
  min-width: 90px;
  height: 40px;
}

@media (max-width: 1120px) {
  .sav-offer-expanded-workspace {
    grid-template-columns: minmax(0, 0.9fr) minmax(520px, 1.1fr);
  }
}

@media (max-width: 760px) {
  .sav-offer-import-panel {
    top: 54px;
    right: 0;
    bottom: 0;
    width: min(100vw, 430px);
    border-radius: 16px 0 0 0;
  }

  .sav-offer-import-panel.is-expanded {
    inset: 54px 0 0;
  }

  .sav-offer-import-panel.is-expanded .sav-offer-import-body {
    padding: 12px;
  }

  .sav-offer-source-modal-backdrop {
    padding: 8px;
  }

  .sav-offer-modal.sav-offer-source-modal {
    width: calc(100vw - 16px);
    height: calc(100vh - 16px);
  }
}

@media (max-width: 900px) {
  .sav-offer-import-panel.is-expanded .sav-offer-import-body {
    overflow-y: auto;
  }

  .sav-offer-expanded-workspace {
    flex: 0 0 auto;
    display: block;
    overflow: visible;
  }

  .sav-offer-import-panel.is-expanded .sav-offer-source-preview {
    height: min(62vh, 620px);
    margin-bottom: 12px;
  }

  .sav-offer-expanded-details {
    display: grid;
    grid-template-rows: auto auto auto;
    overflow: visible;
  }

  .sav-offer-import-panel.is-expanded .sav-offer-lines-card {
    height: auto;
    min-height: 610px;
  }

  .sav-offer-import-panel.is-expanded .sav-offer-lines-scroller {
    height: 480px;
    min-height: 480px;
  }

  .sav-offer-comparison-backdrop {
    padding: 8px;
  }

  .sav-offer-modal.sav-offer-comparison-modal {
    width: calc(100vw - 16px);
    height: calc(100vh - 16px);
  }

  .sav-offer-comparison-body {
    flex-direction: column;
    padding: 8px;
  }

  .sav-offer-comparison-pdf-pane {
    flex-basis: var(--sav-offer-comparison-split);
    border-radius: 10px 10px 0 0;
  }

  .sav-offer-comparison-table-pane {
    border-radius: 0 0 10px 10px;
  }

  .sav-offer-comparison-divider {
    flex-basis: 12px;
    width: 100%;
    cursor: row-resize;
  }

  .sav-offer-comparison-divider::before {
    inset: 4px 0;
  }

  .sav-offer-comparison-divider span {
    width: 42px;
    height: 4px;
  }

  .sav-offer-comparison-divider:hover span,
  .sav-offer-comparison-divider:focus-visible span,
  .sav-offer-comparison-resizing .sav-offer-comparison-divider span {
    transform: scaleX(1.12);
  }

  .sav-offer-comparison-resizing,
  .sav-offer-comparison-resizing * {
    cursor: row-resize !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sav-offer-import-panel *,
  .sav-offer-modal-backdrop * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* v248 - Marge / Finance: Google One analytical surface without duplicated data. */
main.app-main.sav-finance-main {
  background: #ffffff !important;
}

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

.sav-finance-kpis .sav-dashboard-metric {
  min-height: 100px !important;
}

#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel {
  border-radius: 20px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08), 0 6px 18px rgba(60, 64, 67, 0.045) !important;
  transform: none !important;
}

#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel:hover {
  box-shadow: 0 1px 3px rgba(60, 64, 67, 0.1), 0 10px 28px rgba(60, 64, 67, 0.09) !important;
  transform: none !important;
}

.sav-finance-margin-panel .sav-finance-metric-list {
  gap: 8px !important;
}

.sav-finance-margin-equation {
  align-items: center !important;
  color: #9aa0a6 !important;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: 1fr auto 1fr !important;
  height: 18px !important;
  margin: -2px 16px !important;
}

.sav-finance-margin-equation i {
  background: #e3e7ed !important;
  height: 1px !important;
}

.sav-finance-margin-equation b {
  font-size: 14px !important;
  font-weight: 500 !important;
}

.sav-finance-metric-list > [data-sav-finance-metric="true"].is-total {
  background: color-mix(in srgb, var(--sav-google-green-soft) 55%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--sav-google-green) 24%, #dfe3eb) !important;
}

.sav-finance-flow-rows {
  display: grid !important;
  gap: 14px !important;
}

.sav-finance-flow-row {
  background: #f8fafd !important;
  border: 1px solid #e1e5ec !important;
  border-radius: 16px !important;
  display: grid !important;
  gap: 12px !important;
  padding: 16px !important;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease !important;
}

.sav-finance-flow-row:hover {
  background: #ffffff !important;
  border-color: #cbd7ea !important;
  box-shadow: 0 4px 14px rgba(60, 64, 67, 0.08) !important;
}

.sav-finance-flow-row > header {
  align-items: center !important;
  display: flex !important;
  gap: 16px !important;
  justify-content: space-between !important;
}

.sav-finance-flow-row > header > span {
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
}

.sav-finance-flow-row > header > span > strong {
  color: #202124 !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
}

.sav-finance-flow-row > header small {
  color: #6b7280 !important;
  font-size: 10px !important;
  line-height: 1.25 !important;
}

.sav-finance-flow-row > header > strong {
  color: #202124 !important;
  font-size: clamp(16px, 1.25vw, 20px) !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 650 !important;
  letter-spacing: -0.016em !important;
  white-space: nowrap !important;
}

.sav-finance-flow-track {
  background: #e8eaed !important;
  border-radius: 999px !important;
  display: flex !important;
  height: 16px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  width: 100% !important;
}

.sav-finance-flow-track > span {
  flex: 0 0 var(--sav-finance-segment) !important;
  height: 100% !important;
  min-width: 0 !important;
  transition: flex-basis 220ms cubic-bezier(0.2, 0, 0, 1), filter 160ms ease !important;
}

.sav-finance-flow-track > span:hover {
  filter: brightness(0.94) saturate(1.05) !important;
}

.sav-finance-flow-track .is-unprocessed,
.sav-finance-flow-breakdown .is-unprocessed i {
  background: #ea4335 !important;
}

.sav-finance-flow-track .is-pending,
.sav-finance-flow-breakdown .is-pending i {
  background: #f9ab00 !important;
}

.sav-finance-flow-track .is-paid,
.sav-finance-flow-breakdown .is-paid i {
  background: #34a853 !important;
}

.sav-finance-flow-row.is-empty .sav-finance-flow-track {
  background: repeating-linear-gradient(135deg, #edf0f4 0 8px, #f7f8fa 8px 16px) !important;
}

.sav-finance-flow-breakdown {
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.sav-finance-flow-breakdown > span {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #e5e8ee !important;
  border-radius: 12px !important;
  display: grid !important;
  gap: 7px !important;
  grid-template-columns: 8px minmax(0, 1fr) auto !important;
  min-height: 48px !important;
  padding: 8px 10px !important;
}

.sav-finance-flow-breakdown i {
  border-radius: 999px !important;
  display: inline-block !important;
  height: 8px !important;
  width: 8px !important;
}

.sav-finance-flow-breakdown > span > span {
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
}

.sav-finance-flow-breakdown b {
  color: #5f6368 !important;
  font-size: 9.5px !important;
  font-weight: 550 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-finance-flow-breakdown small {
  color: #80868b !important;
  font-size: 9px !important;
}

.sav-finance-flow-breakdown > span > strong {
  color: #3c4043 !important;
  font-size: 10px !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 650 !important;
  white-space: nowrap !important;
}

.sav-finance-flow-adjustment {
  align-items: center !important;
  border-top: 1px solid #e3e7ed !important;
  color: #6b7280 !important;
  display: flex !important;
  font-size: 10px !important;
  justify-content: space-between !important;
  margin-top: -2px !important;
  padding-top: 10px !important;
}

.sav-finance-flow-adjustment strong {
  color: #3c4043 !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 650 !important;
}

@media (max-width: 900px) {
  .sav-finance-kpis {
    grid-template-columns: 1fr !important;
  }

  .sav-finance-flow-breakdown {
    grid-template-columns: 1fr !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sav-finance-flow-row,
  .sav-finance-flow-track > span {
    transition: none !important;
  }
}

@font-face {
  font-display: swap;
  font-family: "Roboto";
  font-stretch: 100%;
  font-style: normal;
  font-weight: 300 800;
  src: url("/assets/fonts/roboto-latin-variable.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --sav-font-family: "Google Sans Flex", "Google Sans", Arial, sans-serif;
  --font-sans: var(--sav-font-family);
  --default-font-family: var(--sav-font-family);
  --sav-accent: #e30613;
  --sav-accent-hover: color-mix(in srgb, var(--sav-accent) 88%, #000000);
  --sav-accent-shadow-soft: color-mix(in srgb, var(--sav-accent) 12%, transparent);
  --sav-accent-shadow-medium: color-mix(in srgb, var(--sav-accent) 22%, transparent);
  --sav-accent-shadow-strong: color-mix(in srgb, var(--sav-accent) 28%, transparent);
  --sav-light-bg: #ffffff;
  --sav-light-bg-soft: #f8fafd;
  --sav-light-surface: #ffffff;
  --sav-light-surface-muted: #f1f3f4;
  --sav-light-border: #dadce0;
  --sav-light-border-soft: #e7eaee;
  --sav-light-text: #202124;
  --sav-light-heading: #111827;
  --sav-light-muted: #5f6368;
  --sav-text: var(--sav-light-text);
  --sav-text-muted: var(--sav-light-muted);
  --sav-border: var(--sav-light-border);
  --sav-surface: var(--sav-light-surface);
  --sav-red: var(--sav-accent);
  --sav-blue: #005eb8;
  --sav-app-background: #ffffff;
  --sav-sidebar-background: #ffffff;
  --sav-sidebar-border: #dadce0;
  --sav-sidebar-hover: #f1f3f4;
  --sav-sidebar-muted: #5f6368;
  --sav-sidebar-text: #202124;

  --sav-dark-bg: #202124;
  --sav-dark-surface: #292a2d;
  --sav-dark-surface-raised: #303134;
  --sav-dark-surface-soft: #26272a;
  --sav-dark-border: #3c4043;
  --sav-dark-border-strong: #5f6368;
  --sav-dark-text: #e8eaed;
  --sav-dark-heading: #f8fafd;
  --sav-dark-muted: #bdc1c6;
  --sav-dark-subtle: #9aa0a6;
  --sav-dark-hover: #35363a;
  --sav-dark-blue: #8ab4f8;
}

/* 2026-06-08: shared tab Excel export button. */
.sav-tab-export-strip {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin: 0;
  min-height: 44px;
  padding: 0;
  position: absolute;
  right: 40px;
  top: 24px;
  width: auto;
  z-index: 4;
}

html,
body,
#root,
#root > div,
#root > div .app-bg {
  background: #ffffff !important;
  color-scheme: light !important;
}

#root .app-main {
  background: transparent !important;
}

#root > div .sidebar-shell {
  background: #ffffff !important;
  border-color: var(--sav-light-border) !important;
}

/* Hide the legacy theme selector before the enhancement layer disables it. */
.settings-panel label:has(> select option[value="dark"]) {
  display: none !important;
}

.sav-legacy-theme-setting-disabled {
  display: none !important;
}

.sav-accent-only-settings-panel > .mt-5.grid {
  grid-template-columns: minmax(220px, 420px) !important;
}

.sav-primary-color-setting {
  max-width: 420px;
}

/* 2026-07-14: professional quote flow — subtle separators, grouped drag and editable spacing. */
.offer-print-document .offer-print-section {
  margin-top: var(--offer-flow-gap, 3.5mm) !important;
}

.offer-print-document .offer-print-section.signature-section {
  margin-top: var(--offer-flow-gap, 7mm) !important;
}

.offer-table .offer-line-row > td {
  border-bottom: 0.25pt solid #edf0f3 !important;
}

.offer-table .offer-subtotal-row-start > th,
.offer-table .offer-subtotal-row-start > td {
  border-top: 0.35pt solid #d9dee5 !important;
}

.offer-print-section > h2,
.offer-payment-table caption,
.signature-section > p:first-child strong {
  font-size: 9.5pt !important;
  line-height: 1.28 !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-services-title-content,
.sav-quote-document-host:not(.sav-print-client-view) .sav-services-title-content .sav-fixed-title-prefix,
.sav-quote-document-host:not(.sav-print-client-view) .sav-services-title-content .sav-services-title-label,
.sav-quote-document-host:not(.sav-print-client-view) .sav-summary-block .sav-global-summary > strong,
.sav-quote-document-host:not(.sav-print-client-view) .sav-payment-schedule > strong,
.sav-quote-document-host:not(.sav-print-client-view) .sav-signature-layout > strong {
  font-size: 13px !important;
  line-height: 1.28 !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-service-line.sav-edit-only {
  border-bottom-color: #edf0f3 !important;
  border-bottom-width: 0.5px !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-service-subtotal::before {
  border-top: 0.5px solid #e5e9ef;
  content: "";
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: -3px;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-flow-block > .sav-block-grip {
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.13) !important;
  color: #52647a !important;
  height: 30px !important;
  left: -32px !important;
  opacity: 0.94 !important;
  top: 5px !important;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, color 0.14s ease, opacity 0.14s ease, transform 0.14s ease !important;
  width: 24px !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-flow-block > .sav-block-grip::before {
  background: currentColor !important;
  background-image: none !important;
  border-radius: 50% !important;
  box-shadow: 5px 0 0 currentColor, 0 5px 0 currentColor, 5px 5px 0 currentColor, 0 10px 0 currentColor, 5px 10px 0 currentColor !important;
  content: "" !important;
  height: 2px !important;
  transform: translate(-2.5px, -5px) !important;
  width: 2px !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-flow-block > .sav-block-grip:hover,
.sav-quote-document-host:not(.sav-print-client-view) .sav-flow-block > .sav-block-grip:focus-visible {
  border-color: #9db4d2 !important;
  box-shadow: 0 3px 10px rgba(31, 73, 125, 0.16) !important;
  color: #315b8a !important;
  opacity: 1 !important;
  outline: 2px solid rgba(49, 91, 138, 0.16) !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-flow-block > .sav-block-grip:active {
  box-shadow: 0 1px 4px rgba(31, 73, 125, 0.2) !important;
  color: #e30613 !important;
  transform: translateY(1px) !important;
}

.sav-flow-gap-control {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  cursor: text !important;
  display: flex !important;
  height: 16px !important;
  justify-content: center !important;
  min-height: 16px !important;
  padding: 0 !important;
  position: absolute !important;
  z-index: 32 !important;
}

.sav-flow-gap-control::before {
  border-top: 1px solid transparent;
  content: "";
  left: 0;
  position: absolute;
  right: 0;
  top: 50%;
}

.sav-flow-gap-control > span {
  background: #ffffff;
  border: 1px solid #dce3ec;
  border-radius: 999px;
  color: #667085;
  font-size: 9px;
  font-weight: 600;
  line-height: 16px;
  opacity: 0;
  padding: 0 8px;
  position: relative;
  transform: translateY(-1px);
  transition: opacity 100ms ease;
}

.sav-flow-gap-control:hover::before,
.sav-flow-gap-control:focus-visible::before {
  border-top-color: #d6e0ec;
}

.sav-flow-gap-control:hover > span,
.sav-flow-gap-control:focus-visible > span {
  opacity: 1;
}

.sav-flow-gap-control:focus-visible {
  outline: 0 !important;
}

.sav-quote-document-host.is-flow-block-dragging .sav-flow-block:not(.is-flow-dragging) {
  transition: top 130ms cubic-bezier(0.2, 0, 0, 1) !important;
}

.sav-quote-document-host .sav-flow-block.is-flow-dragging {
  filter: drop-shadow(0 10px 16px rgba(31, 41, 55, 0.15));
  opacity: 0.96;
  transition: none !important;
  will-change: transform;
  z-index: 90 !important;
}

.sav-flow-drop-indicator {
  background: #8da8c8;
  border-radius: 999px;
  box-shadow: 0 0 0 3px rgba(141, 168, 200, 0.14);
  height: 2px;
  pointer-events: none;
  position: absolute;
  z-index: 80;
}

main.app-main:has(.sav-tab-export-strip) {
  position: relative !important;
}

.sav-tab-native-add-source {
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  width: 1px !important;
}

.sav-tab-excel-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 1px 3px rgba(16, 124, 65, 0.22) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  height: 44px !important;
  justify-content: center !important;
  min-height: 44px !important;
  min-width: 44px !important;
  padding: 0 !important;
  position: relative;
  transition:
    background 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
  width: 44px !important;
}

#root .sav-tab-excel-export-button:hover,
#root .sav-tab-excel-export-button:focus-visible,
.sav-tab-excel-export-button:hover,
.sav-tab-excel-export-button:focus-visible {
  background: #0b6b35 !important;
  box-shadow: 0 2px 7px rgba(16, 124, 65, 0.24) !important;
  outline: 0 !important;
  transform: translateY(-1px) !important;
}

.sav-tab-excel-export-button:disabled {
  cursor: wait !important;
  opacity: 0.72 !important;
  transform: none !important;
}

.sav-tab-excel-export-button svg {
  display: block;
  height: 22px;
  width: 22px;
}

.sav-tab-excel-export-button.is-loading::after {
  animation: sav-tab-export-spin 850ms linear infinite;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  border-top-color: #ffffff;
  content: "";
  height: 18px;
  left: calc(50% - 9px);
  position: absolute;
  top: calc(50% - 9px);
  width: 18px;
}

.sav-tab-excel-export-button.is-loading svg {
  opacity: 0;
}

.sav-tab-export-action-row {
  align-items: center !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  min-width: 0 !important;
}

.sav-tab-export-action-row > .sav-tab-excel-export-button {
  flex: 0 0 44px !important;
  order: 98;
}

.sav-tab-export-action-row:not(:has(.sav-tab-search-control)) > .sav-tab-excel-export-button {
  margin-left: auto !important;
}

.sav-tab-export-action-row > .sav-tab-excel-export-button + button,
.sav-tab-export-action-row > .sav-tab-excel-export-button + .action-button-primary,
.sav-tab-export-action-row > .sav-tab-excel-export-button + .legacy-action {
  order: 99;
}

.sav-tab-primary-add-button,
.legacy-action.legacy-action-round.sav-tab-primary-add-button,
.action-button-primary.sav-tab-primary-add-button,
.action-button-secondary.sav-tab-primary-add-button,
.sav-client-invoice-add-project.sav-tab-primary-add-button {
  align-items: center !important;
  align-self: center !important;
  background: var(--sav-accent) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 1px 3px var(--sav-accent-shadow-medium) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  flex: 0 0 44px !important;
  font-size: 0 !important;
  height: 44px !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  min-height: 44px !important;
  min-width: 44px !important;
  order: 99 !important;
  padding: 0 !important;
  pointer-events: auto !important;
  position: relative !important;
  touch-action: manipulation !important;
  transform: none !important;
  user-select: none !important;
  width: 44px !important;
  z-index: 2 !important;
}

.sav-tab-primary-add-button span,
.filter-bar.sav-tab-export-action-row > .legacy-action-round span,
.filter-bar.sav-tab-export-action-row > .action-button-primary span,
.filter-bar.sav-tab-export-action-row > .action-button-secondary span,
.filter-bar.sav-tab-export-action-row > button[aria-label*="Ajouter"] span,
.sav-client-invoice-filters.sav-tab-export-action-row > .sav-client-invoice-add-project span,
.purchase-actions.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button) span,
.filter-bar > div:has(.sav-tab-excel-export-button) > button:not(.sav-tab-excel-export-button) span,
.flex.justify-end.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button) span {
  display: none !important;
}

.sav-tab-primary-add-button svg,
.sav-client-invoice-add-project.sav-tab-primary-add-button > svg,
.filter-bar.sav-tab-export-action-row > .legacy-action-round svg,
.filter-bar.sav-tab-export-action-row > .action-button-primary svg,
.filter-bar.sav-tab-export-action-row > .action-button-secondary svg,
.filter-bar.sav-tab-export-action-row > button[aria-label*="Ajouter"] svg,
.sav-client-invoice-filters.sav-tab-export-action-row > .sav-client-invoice-add-project svg,
.filter-bar > div:has(.sav-tab-excel-export-button) > .legacy-action-round[aria-label*="Ajouter"] svg,
.filter-bar > div:has(.sav-tab-excel-export-button) > .action-button-primary[aria-label*="Ajouter"] svg,
.filter-bar > div:has(.sav-tab-excel-export-button) > .action-button-secondary[aria-label*="Ajouter"] svg,
.filter-bar > div:has(.sav-tab-excel-export-button) > button:not(.sav-tab-excel-export-button) svg,
.purchase-actions.sav-tab-export-action-row > .action-button-primary[aria-label*="Ajouter"] svg,
.purchase-actions.sav-tab-export-action-row > .action-button-secondary[aria-label*="Ajouter"] svg,
.purchase-actions.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button) svg,
.flex.justify-end.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button) svg,
.flex.justify-end.sav-tab-export-action-row > button[aria-label*="Ajouter"] svg {
  display: none !important;
}

.sav-tab-primary-add-button::before,
.filter-bar.sav-tab-export-action-row > .legacy-action-round::before,
.filter-bar.sav-tab-export-action-row > .action-button-primary::before,
.filter-bar.sav-tab-export-action-row > .action-button-secondary::before,
.filter-bar.sav-tab-export-action-row > button[aria-label*="Ajouter"]::before,
.sav-client-invoice-filters.sav-tab-export-action-row > .sav-client-invoice-add-project::before,
.filter-bar > div:has(.sav-tab-excel-export-button) > .legacy-action-round[aria-label*="Ajouter"]::before,
.filter-bar > div:has(.sav-tab-excel-export-button) > .action-button-primary[aria-label*="Ajouter"]::before,
.filter-bar > div:has(.sav-tab-excel-export-button) > .action-button-secondary[aria-label*="Ajouter"]::before,
.filter-bar > div:has(.sav-tab-excel-export-button) > button:not(.sav-tab-excel-export-button)::before,
.purchase-actions.sav-tab-export-action-row > .action-button-primary[aria-label*="Ajouter"]::before,
.purchase-actions.sav-tab-export-action-row > .action-button-secondary[aria-label*="Ajouter"]::before,
.purchase-actions.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button)::before,
.flex.justify-end.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button)::before,
.flex.justify-end.sav-tab-export-action-row > button[aria-label*="Ajouter"]::before {
  align-items: center !important;
  content: "+" !important;
  display: inline-flex !important;
  font-family: var(--sav-font-family) !important;
  font-size: 28px !important;
  font-weight: 300 !important;
  height: 100% !important;
  inset: 0 !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  width: 100% !important;
}

#root > div:not(.dark) .sav-tab-primary-add-button,
#root > div.dark .sav-tab-primary-add-button {
  background: var(--sav-accent) !important;
  background-color: var(--sav-accent) !important;
  color: #ffffff !important;
}

.filter-bar.sav-tab-export-action-row,
.sav-client-invoice-filters.sav-tab-export-action-row,
.purchase-actions.sav-tab-export-action-row,
.flex.justify-end.sav-tab-export-action-row {
  align-items: center !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  height: 44px !important;
  justify-content: flex-start !important;
  min-height: 44px !important;
  min-width: 0 !important;
  padding-inline-end: 22px !important;
  position: relative !important;
  width: 100% !important;
}

.filter-bar.sav-tab-export-action-row > .flex.gap-2,
.filter-bar.sav-tab-export-action-row > div.flex.gap-2:first-child {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.filter-bar.sav-tab-export-action-row > .flex.gap-2 .sav-tab-search-control,
.filter-bar.sav-tab-export-action-row > div.flex.gap-2:first-child .sav-tab-search-control {
  margin-left: 10px !important;
}

.filter-bar > .sav-tab-export-action-row:has(.sav-tab-primary-add-button),
.filter-bar > div:has(.sav-tab-primary-add-button),
.filter-bar > div:has(.sav-tab-excel-export-button):has(.legacy-action-round),
.filter-bar > div:has(.sav-tab-excel-export-button):has(.action-button-primary),
.filter-bar > div:has(.sav-tab-excel-export-button):has(.action-button-secondary) {
  align-items: center !important;
  display: flex !important;
  gap: 8px !important;
  min-height: 44px !important;
  margin-left: auto !important;
  margin-right: 22px !important;
}

.filter-bar > div:has(.sav-tab-excel-export-button) > .legacy-action-round[aria-label*="Ajouter"],
.filter-bar > div:has(.sav-tab-excel-export-button) > .action-button-primary[aria-label*="Ajouter"],
.filter-bar > div:has(.sav-tab-excel-export-button) > .action-button-secondary[aria-label*="Ajouter"],
.filter-bar > div:has(.sav-tab-excel-export-button) > button:not(.sav-tab-excel-export-button),
.filter-bar.sav-tab-export-action-row > .legacy-action-round,
.filter-bar.sav-tab-export-action-row > .action-button-primary,
.filter-bar.sav-tab-export-action-row > .action-button-secondary,
.filter-bar.sav-tab-export-action-row > button[aria-label*="Ajouter"],
.sav-client-invoice-filters.sav-tab-export-action-row > .sav-client-invoice-add-project,
.purchase-actions.sav-tab-export-action-row > .action-button-primary[aria-label*="Ajouter"],
.purchase-actions.sav-tab-export-action-row > .action-button-secondary[aria-label*="Ajouter"],
.purchase-actions.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button),
.flex.justify-end.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button),
.flex.justify-end.sav-tab-export-action-row > button[aria-label*="Ajouter"] {
  align-items: center !important;
  align-self: center !important;
  background: var(--sav-accent) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 1px 3px var(--sav-accent-shadow-medium) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  flex: 0 0 44px !important;
  font-size: 0 !important;
  height: 44px !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  min-height: 44px !important;
  min-width: 44px !important;
  order: 99 !important;
  padding: 0 !important;
  position: relative !important;
  width: 44px !important;
}

#root .sav-tab-primary-add-button:hover,
#root .sav-tab-primary-add-button:focus-visible,
#root .filter-bar.sav-tab-export-action-row > .legacy-action-round:hover,
#root .filter-bar.sav-tab-export-action-row > .action-button-primary:hover,
#root .filter-bar.sav-tab-export-action-row > .action-button-secondary:hover,
#root .filter-bar.sav-tab-export-action-row > button[aria-label*="Ajouter"]:hover,
#root .sav-client-invoice-filters.sav-tab-export-action-row > .sav-client-invoice-add-project:hover,
#root .filter-bar > div:has(.sav-tab-excel-export-button) > button:not(.sav-tab-excel-export-button):hover,
#root .purchase-actions.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button):hover,
#root .flex.justify-end.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button):hover {
  background: var(--sav-accent-hover) !important;
  box-shadow: 0 2px 7px var(--sav-accent-shadow-strong) !important;
  outline: 0 !important;
  transform: translateY(-1px) !important;
}

.filter-bar.sav-tab-export-action-row > .sav-tab-excel-export-button,
.sav-client-invoice-filters.sav-tab-export-action-row > .sav-tab-excel-export-button,
.purchase-actions.sav-tab-export-action-row > .sav-tab-excel-export-button,
.flex.justify-end.sav-tab-export-action-row > .sav-tab-excel-export-button {
  align-self: center !important;
  margin-left: auto !important;
  order: 98 !important;
  position: static !important;
  transform: none !important;
}

.filter-bar.sav-tab-export-action-row > .sav-tab-primary-add-button,
.filter-bar.sav-tab-export-action-row > .legacy-action-round,
.filter-bar.sav-tab-export-action-row > .action-button-primary,
.filter-bar.sav-tab-export-action-row > .action-button-secondary,
.filter-bar.sav-tab-export-action-row > button[aria-label*="Ajouter"],
.sav-client-invoice-filters.sav-tab-export-action-row > .sav-tab-primary-add-button,
.sav-client-invoice-filters.sav-tab-export-action-row > .sav-client-invoice-add-project,
.purchase-actions.sav-tab-export-action-row > .sav-tab-primary-add-button,
.flex.justify-end.sav-tab-export-action-row > .sav-tab-primary-add-button {
  margin-left: 0 !important;
  order: 99 !important;
}

.purchase-actions.sav-tab-export-action-row > svg:first-child,
.purchase-actions.sav-tab-export-action-row > .sav-filter-icon,
.purchase-actions.sav-tab-export-action-row .purchase-filters > svg:first-child,
.sav-client-invoice-filters .sav-filter-icon {
  display: none !important;
}

.purchase-actions.sav-tab-export-action-row .purchase-filters {
  align-items: center !important;
  display: flex !important;
  flex: 1 1 auto !important;
  gap: 10px !important;
  min-width: 0 !important;
}

.purchase-actions.sav-tab-export-action-row + .purchase-panel {
  margin-top: 20px !important;
}

.legacy-select,
.legacy-select-wrap,
.sav-tab-search-control input,
.purchase-filters select,
.sav-client-invoice-filters .legacy-select,
.sav-dashboard-focus-select,
.sav-dashboard-v2-filter-row select {
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.legacy-select option,
.purchase-filters select option,
.sav-client-invoice-filters .legacy-select option,
.sav-dashboard-focus-select option {
  font-weight: 400 !important;
  text-transform: none !important;
}

@keyframes sav-tab-export-spin {
  to {
    transform: rotate(360deg);
  }
}

html,
body,
#root,
button,
input,
select,
textarea {
  font-family: var(--sav-font-family) !important;
  font-weight: 400;
}

table,
th,
td,
dialog,
[role="dialog"],
[role="menu"],
[role="tooltip"],
.sav-offer-import-panel,
.sav-offer-modal,
savills-planning-module {
  font-family: var(--sav-font-family) !important;
}

button:not(:disabled),
input[type="button"]:not(:disabled),
input[type="submit"]:not(:disabled),
input[type="reset"]:not(:disabled),
input[type="checkbox"]:not(:disabled),
input[type="radio"]:not(:disabled),
input[type="file"]:not(:disabled),
select:not(:disabled),
summary,
a[href],
label[for],
[onclick],
[role="button"]:not([aria-disabled="true"]),
[role="checkbox"]:not([aria-disabled="true"]),
[role="menuitem"]:not([aria-disabled="true"]),
[role="option"]:not([aria-disabled="true"]),
[role="switch"]:not([aria-disabled="true"]),
[role="tab"]:not([aria-disabled="true"]),
[tabindex]:not([tabindex="-1"]):not(input):not(select):not(textarea):not([contenteditable="true"]),
.cursor-pointer,
.legacy-action:not(:disabled),
.action-button-primary:not(:disabled),
.action-button-secondary:not(:disabled),
.sav-tab-primary-add-button:not(:disabled),
.sav-tab-excel-export-button:not(:disabled),
.settings-tab,
.legacy-select-wrap,
.legacy-select-wrap *,
.sav-tab-search-control,
.sav-tab-search-control *,
.sav-dashboard-v2-filter-row label,
.sav-dashboard-v2-filter-row label *,
.sav-client-invoice-filters label,
.sav-client-invoice-filters label *,
.purchase-filters label,
.purchase-filters label *,
.purchase-filters select:not(:disabled),
[data-sav-client-invoice-action]:not(:disabled),
[data-sav-client-invoice-action]:not(:disabled) *,
[data-sav-tab-primary-action]:not(:disabled),
[data-sav-tab-primary-action]:not(:disabled) *,
.document-drop-zone,
.drop-zone,
.fluid-entity-grid > .entity-card,
.project-list-grid > .project-card,
.quote-card-grid > .quote-card,
.entity-list-row,
.entity-list-row-supplier,
.entity-list-name,
.entity-list-static,
.project-list-row,
.project-list-name,
.quote-list-line > .quote-reference,
.quote-list-line > .quote-status-cell,
.quote-list-line > .quote-actions-cell,
.quote-reference,
.quote-status-select,
.quote-status,
.quote-action-trigger,
.quote-action-menu button,
.sav-quote-status-trigger,
.sav-quote-status-option,
.sav-quote-toolbar-button,
.sav-quote-save-button,
.sav-quote-delete-close,
.sav-quote-delete-secondary,
.sav-quote-delete-primary,
.sav-quote-duplicate-close,
.sav-quote-duplicate-secondary,
.sav-quote-duplicate-primary,
.sav-quote-duplicate-dialog select,
.sav-service-import-zone,
.sav-service-actions button,
.sav-row-actions button,
.sav-row-drag-handle,
.sav-project-date-clear,
.sav-company-logo-remove,
.pdf-remove-button,
.document-inline-item,
.sav-purchase-supplier-option,
.sav-forecast-client-option,
.sav-new-unit-option,
.purchase-panel .project-collapse,
.purchase-panel .project-drag,
.purchase-panel .project-add-invoice,
.purchase-panel .row-expand,
.purchase-panel .invoice-summary,
.purchase-panel .pdf-icon,
.purchase-panel .paid-pill,
.project-delete,
.delete-icon {
  cursor: pointer !important;
}

strong,
h1,
h2,
h3,
.page-title,
.legacy-action,
.action-button-primary,
.action-button-secondary {
  font-family: var(--sav-font-family) !important;
  font-weight: 500 !important;
}

main.app-main > header,
main.app-main .sav-dashboard-v2-header,
main.app-main .sav-dashboard-header,
main.app-main .sav-client-invoice-heading {
  align-items: flex-start !important;
  box-sizing: border-box !important;
  display: flex !important;
  justify-content: space-between !important;
  margin: 0 0 21px !important;
  min-height: 44px !important;
  padding: 0 !important;
}

main.app-main:not(:has(.sav-dashboard-shell)):not(:has(.sav-dashboard-native-placeholder)) {
  padding: 24px 40px 42px !important;
}

main.app-main:has(.sav-dashboard-shell) {
  padding: 24px 40px 42px !important;
}

main.app-main:has(.sav-dashboard-native-placeholder) {
  padding: 24px 40px 42px !important;
}

main.app-main:has(.sav-dashboard-native-placeholder) > header,
main.app-main:has(.sav-dashboard-native-placeholder) > .sav-dashboard-native-placeholder {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

main.app-main:has(.sav-dashboard-shell) > header {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

main.app-main > [data-sav-dashboard-hidden="1"] {
  display: none !important;
}

main.app-main:has(.sav-dashboard-shell) .sav-dashboard-shell {
  margin-top: 0 !important;
}

main.app-main > header h1.page-title,
main.app-main h1.page-title,
main.app-main .sav-dashboard-v2-header h1,
main.app-main .sav-dashboard-header h1,
main.app-main .sav-client-invoice-heading h1 {
  color: #111827 !important;
  font-family: var(--sav-font-family) !important;
  font-size: 30px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.12 !important;
  margin: 0 !important;
  padding: 0 !important;
}

main.app-main .sav-dashboard-v2-header p,
main.app-main .sav-dashboard-header p,
main.app-main .sav-client-invoice-heading p,
main.app-main > header p {
  font-family: var(--sav-font-family) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
  margin: 4px 0 0 !important;
}

/* Light mode is the explicit default. This also neutralizes Tailwind's
   media-based dark utilities when the app itself is not in dark mode. */
#root > div:not(.dark) .app-bg {
  background: #ffffff !important;
  color: var(--sav-light-text) !important;
}

#root > div:not(.dark) [class~="dark:text-slate-100"],
#root > div:not(.dark) [class~="dark:text-white"] {
  color: var(--sav-light-heading) !important;
}

#root > div:not(.dark) [class~="dark:text-slate-300"],
#root > div:not(.dark) [class~="dark:text-slate-400"] {
  color: var(--sav-light-muted) !important;
}

#root > div:not(.dark) [class~="dark:bg-slate-800"],
#root > div:not(.dark) [class~="dark:bg-slate-900"],
#root > div:not(.dark) [class~="dark:bg-slate-950"] {
  background-color: var(--sav-light-surface) !important;
}

#root > div:not(.dark) [class~="dark:bg-slate-900/70"] {
  background-color: rgba(255, 255, 255, 0.72) !important;
}

#root > div:not(.dark) [class~="dark:border-[#2d3748]"],
#root > div:not(.dark) [class~="dark:border-[#3c4043]"],
#root > div:not(.dark) [class~="dark:border-slate-700"],
#root > div:not(.dark) [class~="dark:border-slate-800"] {
  border-color: var(--sav-light-border) !important;
}

#root > div:not(.dark) .sidebar-shell,
#root > div:not(.dark) .settings-panel,
#root > div:not(.dark) .dashboard-card,
#root > div:not(.dark) .entity-card,
#root > div:not(.dark) .entity-subcard,
#root > div:not(.dark) .entity-list-table,
#root > div:not(.dark) .project-card,
#root > div:not(.dark) .project-list-table,
#root > div:not(.dark) .quote-card,
#root > div:not(.dark) .quote-list-table,
#root > div:not(.dark) .forecast-card,
#root > div:not(.dark) .purchase-panel,
#root > div:not(.dark) .purchase-project,
#root > div:not(.dark) .company-info-card,
#root > div:not(.dark) .company-address-card,
#root > div:not(.dark) .document-drop-zone,
#root > div:not(.dark) .drop-zone {
  background-color: var(--sav-light-surface) !important;
  border-color: var(--sav-light-border) !important;
  color: var(--sav-light-text) !important;
}

#root > div .sidebar-shell {
  height: 100vh !important;
  max-height: 100vh !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  position: fixed !important;
  scrollbar-gutter: stable;
}

#root > div .sidebar-shell nav {
  min-height: 0;
  padding-bottom: 18px;
}

#root > div .sidebar-shell.sav-sidebar-has-logout nav {
  padding-bottom: 78px !important;
}

.sav-sidebar-logout {
  background: transparent !important;
  border: 0 !important;
  bottom: 42px !important;
  box-shadow: none !important;
  color: #94a3b8 !important;
  cursor: pointer !important;
  display: block !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  left: 0 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  opacity: 0.78 !important;
  padding: 8px 4px !important;
  position: absolute !important;
  right: 0 !important;
  text-align: center !important;
  text-transform: none !important;
  width: 100% !important;
  z-index: 3 !important;
}

.sav-sidebar-logout:hover,
.sav-sidebar-logout:focus-visible {
  color: #64748b !important;
  opacity: 1 !important;
  outline: 0 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.sav-sidebar-logout-icon {
  align-items: center !important;
  display: inline-flex !important;
  justify-content: center !important;
  margin: 0 auto 3px !important;
  max-height: 16px !important;
  max-width: 16px !important;
}

.sav-sidebar-logout-icon svg {
  display: block !important;
  fill: none !important;
  height: 16px !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.8 !important;
  width: 16px !important;
}

.sav-sidebar-logout-label {
  display: block !important;
}

.sav-sidebar-logout-compact .sav-sidebar-logout {
  padding: 6px 2px !important;
}

.sav-sidebar-logout-compact .sav-sidebar-logout-icon {
  margin: 0 auto !important;
}

.sav-sidebar-logout-compact .sav-sidebar-logout-label {
  display: none !important;
}

#root > div .sidebar-toggle-button {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  bottom: 12px !important;
  box-shadow: none !important;
  color: #94a3b8 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  height: 24px !important;
  justify-content: center !important;
  left: 50% !important;
  margin: 0 !important;
  opacity: 0.86 !important;
  padding: 0 !important;
  position: absolute !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: 24px !important;
  z-index: 4 !important;
}

#root > div .sidebar-toggle-button:hover,
#root > div .sidebar-toggle-button:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  color: #64748b !important;
  opacity: 1 !important;
  outline: 0 !important;
}

#root > div .sidebar-toggle-button svg {
  height: 16px !important;
  width: 16px !important;
}

#root > div .sidebar-shell::-webkit-scrollbar {
  width: 8px;
}

#root > div .sidebar-shell::-webkit-scrollbar-track {
  background: transparent;
}

#root > div .sidebar-shell::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.55);
  border-radius: 999px;
}

#root > div .sidebar-shell::-webkit-scrollbar-thumb:hover {
  background: rgba(100, 116, 139, 0.75);
}

#root > div.dark .sidebar-shell::-webkit-scrollbar-thumb {
  background: rgba(189, 193, 198, 0.38);
}

#root > div.dark .sidebar-shell::-webkit-scrollbar-thumb:hover {
  background: rgba(232, 234, 237, 0.52);
}

@media (min-width: 821px) and (max-height: 860px) {
  #root > div .sidebar-logo-full {
    align-items: flex-start !important;
    height: clamp(94px, 15vh, 122px) !important;
    padding: 10px 16px 6px !important;
  }

  #root > div .sidebar-logo-shell {
    max-height: 100% !important;
    padding: 0 !important;
  }

  #root > div .brand-logo {
    max-height: clamp(84px, 14vh, 112px) !important;
    object-fit: contain !important;
    width: auto !important;
  }

  #root > div .sidebar-logo-mini {
    height: clamp(58px, 10vh, 72px) !important;
  }

  #root > div .brand-logo-compact {
    max-height: clamp(42px, 7vh, 54px) !important;
    object-fit: contain !important;
    width: auto !important;
  }

  #root > div .sidebar-shell nav {
    padding-block: 4px !important;
    padding-bottom: 8px !important;
  }

  #root > div .sidebar-shell nav button {
    border-radius: 0 18px 18px 0 !important;
    font-size: 14px !important;
    height: clamp(40px, 5.9vh, 48px) !important;
    margin-block: 1px !important;
  }

  #root > div .sidebar-shell nav button svg {
    height: 16px !important;
    width: 16px !important;
  }

  #root > div .sidebar-shell nav > div > div {
    margin-block: clamp(3px, 0.85vh, 7px) !important;
  }

  #root > div .app-main {
    padding-bottom: 24px !important;
    padding-top: clamp(14px, 2.4vh, 22px) !important;
  }

  #root > div .app-main > header {
    margin-bottom: clamp(18px, 3.2vh, 28px) !important;
  }

  #root > div .page-title {
    font-size: clamp(26px, 3.7vh, 30px) !important;
  }

}


@media (min-width: 821px) and (max-height: 780px) {
  #root > div .sidebar-logo-full {
    height: 88px !important;
    padding: 8px 14px 4px !important;
  }

  #root > div .brand-logo {
    max-height: 80px !important;
  }

  #root > div .sidebar-logo-mini {
    height: 54px !important;
  }

  #root > div .brand-logo-compact {
    max-height: 42px !important;
  }

  #root > div .sidebar-shell nav {
    padding-block: 2px !important;
    padding-bottom: 6px !important;
  }

  #root > div .sidebar-shell nav button {
    border-radius: 0 16px 16px 0 !important;
    font-size: 13px !important;
    height: 38px !important;
    margin-block: 0 !important;
  }

  #root > div .sidebar-shell nav button svg {
    height: 15px !important;
    width: 15px !important;
  }

  #root > div .sidebar-shell nav > div > div {
    margin-block: 1px !important;
  }

  #root > div .app-main {
    padding-bottom: 18px !important;
    padding-top: 14px !important;
  }

  #root > div .app-main > header {
    margin-bottom: 18px !important;
  }

  #root > div .page-title {
    font-size: 28px !important;
  }

}

@media (min-width: 821px) and (max-height: 700px) {
  #root > div .sidebar-logo-full {
    height: 82px !important;
    padding: 8px 14px 4px !important;
  }

  #root > div .brand-logo {
    max-height: 76px !important;
  }

  #root > div .sidebar-logo-mini {
    height: 54px !important;
  }

  #root > div .sidebar-shell nav button {
    font-size: 13px !important;
    height: 36px !important;
  }

  #root > div .sidebar-shell nav button svg {
    height: 15px !important;
    width: 15px !important;
  }

  #root > div .sidebar-shell nav > div > div {
    margin-block: 2px !important;
  }
}

#root > div:not(.dark) .page-title,
#root > div:not(.dark) .dashboard-card-value,
#root > div:not(.dark) .project-card h2,
#root > div:not(.dark) .quote-card h2,
#root > div:not(.dark) .settings-panel h2,
#root > div:not(.dark) .settings-panel h3,
#root > div:not(.dark) .company-info-card h3,
#root > div:not(.dark) .entity-list-name,
#root > div:not(.dark) .quote-amount,
#root > div:not(.dark) .project-empty strong,
#root > div:not(.dark) .quote-empty strong {
  color: var(--sav-light-heading) !important;
}

#root > div:not(.dark) .dashboard-card-label,
#root > div:not(.dark) .dashboard-card-caption,
#root > div:not(.dark) .project-address,
#root > div:not(.dark) .project-description,
#root > div:not(.dark) .quote-card-meta,
#root > div:not(.dark) .quote-card-gridline,
#root > div:not(.dark) .entity-list-line,
#root > div:not(.dark) .project-list-line,
#root > div:not(.dark) .quote-list-line,
#root > div:not(.dark) .purchase-empty,
#root > div:not(.dark) .project-empty,
#root > div:not(.dark) .quote-empty,
#root > div:not(.dark) .document-inline-empty {
  color: var(--sav-light-muted) !important;
}

#root > div:not(.dark) .entity-list-header,
#root > div:not(.dark) .project-list-header,
#root > div:not(.dark) .quote-list-header,
#root > div:not(.dark) .purchase-grid-header,
#root > div:not(.dark) .responsive-table thead,
#root > div:not(.dark) .responsive-table tfoot,
#root > div:not(.dark) .company-address-row-header {
  background-color: var(--sav-light-bg-soft) !important;
  color: var(--sav-light-muted) !important;
  border-color: var(--sav-light-border) !important;
}

#root > div:not(.dark) input,
#root > div:not(.dark) select,
#root > div:not(.dark) textarea,
#root > div:not(.dark) .legacy-select,
#root > div:not(.dark) .quote-input,
#root > div:not(.dark) .supplier-input,
#root > div:not(.dark) .ht-input,
#root > div:not(.dark) .invoice-amount-cell {
  background-color: var(--sav-light-surface) !important;
  border-color: var(--sav-light-border-soft) !important;
  color: var(--sav-light-heading) !important;
}

#root > div:not(.dark) .action-button-secondary,
#root > div:not(.dark) .project-delete,
#root > div:not(.dark) .quote-action-trigger {
  background-color: var(--sav-light-surface) !important;
  border-color: var(--sav-light-border) !important;
  color: var(--sav-light-heading) !important;
}

#root > div:not(.dark) .purchase-actions.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button),
#root > div:not(.dark) .flex.justify-end.sav-tab-export-action-row > button:not(.sav-tab-excel-export-button) {
  background: var(--sav-accent) !important;
  background-color: var(--sav-accent) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

#root > div:not(.dark) .settings-tab:not(.settings-tab-active),
#root > div:not(.dark) .legacy-action:not(.legacy-action-round):not(.bg-\[\#16833A\]) {
  color: var(--sav-light-text) !important;
}

#root > div .settings-tab.settings-tab-active {
  border-color: transparent !important;
  color: #ffffff !important;
}

#root > div .sidebar-resize-handle {
  color: transparent !important;
}

#root > div:not(.dark) .sidebar-shell nav button:not([style]):hover,
#root > div:not(.dark) .sidebar-shell nav button.dark\:hover\:bg-\[\#2b3038\]:hover,
#root > div:not(.dark) [class~="dark:hover:bg-[#2b3038]"]:hover,
#root > div:not(.dark) [class~="dark:hover:bg-slate-800"]:hover {
  background-color: color-mix(in srgb, var(--sav-accent) 10%, #ffffff) !important;
  color: var(--sav-accent) !important;
}

@supports (background: color-mix(in srgb, red 10%, white)) {
  #root > div:not(.dark) .sidebar-shell nav button:not([style]):hover,
  #root > div:not(.dark) .sidebar-shell nav button.dark\:hover\:bg-\[\#2b3038\]:hover,
  #root > div:not(.dark) [class~="dark:hover:bg-[#2b3038]"]:hover,
  #root > div:not(.dark) [class~="dark:hover:bg-slate-800"]:hover {
    background-color: color-mix(in srgb, var(--sav-accent) 10%, #ffffff) !important;
  }
}

#root > div:not(.dark) .sidebar-shell nav button[style]:hover {
  background-color: color-mix(in srgb, var(--sav-accent) 14%, #ffffff) !important;
}

@supports (background: color-mix(in srgb, red 10%, white)) {
  #root > div:not(.dark) .sidebar-shell nav button[style]:hover {
    background-color: color-mix(in srgb, var(--sav-accent) 14%, #ffffff) !important;
  }
}

#root > div:not(.dark) .legacy-action.bg-\[\#16833A\],
#root > div.dark .legacy-action.bg-\[\#16833A\] {
  background-color: #16833a !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

#root > div:not(.dark) .legacy-action.bg-\[\#16833A\]:hover,
#root > div.dark .legacy-action.bg-\[\#16833A\]:hover {
  background-color: #126f31 !important;
  color: #ffffff !important;
}

#root > div:not(.dark) .document-drop-zone,
#root > div:not(.dark) .drop-zone {
  transition:
    background-color 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease,
    transform 0.16s ease;
}

#root > div:not(.dark) .document-drop-zone:hover,
#root > div:not(.dark) .document-drop-zone:focus,
#root > div:not(.dark) .document-drop-zone:focus-within,
#root > div:not(.dark) .document-drop-zone-active,
#root > div:not(.dark) .drop-zone:hover,
#root > div:not(.dark) .drop-zone:focus,
#root > div:not(.dark) .drop-zone:focus-within,
#root > div:not(.dark) .drop-zone-active {
  background-color: color-mix(in srgb, var(--sav-accent) 9%, #ffffff) !important;
  border-color: var(--sav-accent) !important;
  color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px var(--sav-accent-shadow-soft) !important;
  transform: translateY(-1px);
}

@supports (background: color-mix(in srgb, red 10%, white)) {
  #root > div:not(.dark) .document-drop-zone:hover,
  #root > div:not(.dark) .document-drop-zone:focus,
  #root > div:not(.dark) .document-drop-zone:focus-within,
  #root > div:not(.dark) .document-drop-zone-active,
  #root > div:not(.dark) .drop-zone:hover,
  #root > div:not(.dark) .drop-zone:focus,
  #root > div:not(.dark) .drop-zone:focus-within,
  #root > div:not(.dark) .drop-zone-active {
    background-color: color-mix(in srgb, var(--sav-accent) 9%, #ffffff) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent) 12%, transparent) !important;
  }
}

#root > div:not(.dark) .document-drop-zone small,
#root > div:not(.dark) .drop-zone small {
  color: var(--sav-light-muted) !important;
}

#root > div .brand-logo-dark,
#root > div .brand-logo-compact.brand-logo-dark {
  object-fit: contain;
}

#root > div.dark .brand-logo-dark,
#root > div.dark .brand-logo-compact.brand-logo-dark {
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.22));
}

main,
main section,
.fluid-card-grid,
.fluid-entity-grid,
.project-list-grid,
.quote-card-grid {
  min-width: 0;
}

.fluid-entity-grid > .entity-card,
.project-list-grid > .project-card,
.quote-card-grid > .quote-card {
  background: var(--sav-light-surface) !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05) !important;
  color: var(--sav-light-text) !important;
  cursor: pointer !important;
  min-height: 214px !important;
  outline: none !important;
  overflow: visible !important;
  padding: 18px !important;
  position: relative !important;
  transition:
    background-color 0.16s ease,
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    transform 0.16s ease !important;
}

.fluid-entity-grid > .entity-card:hover,
.fluid-entity-grid > .entity-card:focus-visible,
.fluid-entity-grid > .entity-card:focus-within,
.project-list-grid > .project-card:hover,
.project-list-grid > .project-card:focus-visible,
.project-list-grid > .project-card:focus-within,
.quote-card-grid > .quote-card:hover,
.quote-card-grid > .quote-card:focus-visible,
.quote-card-grid > .quote-card:focus-within {
  background: color-mix(in srgb, var(--sav-accent) 3%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--sav-accent) 42%, var(--sav-light-border)) !important;
  box-shadow:
    0 14px 34px rgba(15, 23, 42, 0.1),
    0 0 0 3px color-mix(in srgb, var(--sav-accent) 10%, transparent) !important;
  transform: translateY(-2px) !important;
}

.fluid-entity-grid > .entity-card h3,
.project-list-grid > .project-card h2,
.quote-card-grid > .quote-card h2 {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.22 !important;
}

.fluid-entity-grid > .entity-card .entity-card-detail-key,
.project-list-grid > .project-card .project-client,
.quote-card-grid > .quote-card .quote-card-meta,
.quote-card-grid > .quote-card .quote-card-gridline {
  color: var(--sav-light-muted) !important;
}

.fluid-entity-grid > .entity-card .project-delete,
.project-list-grid > .project-card .project-delete,
.quote-card-grid > .quote-card .quote-action-trigger {
  transition:
    background-color 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease !important;
}

.project-card h2,
.project-list-name {
  font-weight: 700 !important;
}

.fluid-entity-grid > .entity-card {
  gap: 14px !important;
  min-height: 214px !important;
}

.fluid-entity-grid > .entity-card h3 {
  color: var(--sav-light-heading) !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
}

.entity-card-legacy-hidden {
  display: none !important;
}

.entity-card-details {
  display: grid !important;
  gap: 7px !important;
  margin-top: 13px !important;
}

.entity-card-detail-row {
  align-items: start !important;
  display: grid !important;
  gap: 9px !important;
  grid-template-columns: minmax(74px, 0.42fr) minmax(0, 1fr) !important;
  min-width: 0 !important;
}

.entity-card-detail-key {
  color: var(--sav-light-muted) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

.entity-card-detail-value {
  color: var(--sav-light-text) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

.sav-purchase-supplier-dropdown {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18) !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 2px !important;
  overflow-y: auto !important;
  padding: 4px !important;
  position: fixed !important;
  z-index: 260 !important;
}

.sav-purchase-supplier-dropdown[hidden] {
  display: none !important;
}

.sav-purchase-supplier-option,
.sav-purchase-supplier-empty {
  border-radius: 6px !important;
  box-sizing: border-box !important;
  color: var(--sav-light-text) !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  min-height: 28px !important;
  padding: 7px 9px !important;
  text-align: left !important;
  width: 100% !important;
}

.sav-purchase-supplier-option {
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
}

.sav-purchase-supplier-option:hover,
.sav-purchase-supplier-option.is-active {
  background: color-mix(in srgb, var(--sav-accent) 8%, #ffffff) !important;
  color: var(--sav-accent) !important;
}

.sav-purchase-supplier-empty {
  color: var(--sav-light-muted) !important;
}

.sav-new-supplier-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.34) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 24px !important;
  position: fixed !important;
  z-index: 290 !important;
}

.sav-new-supplier-dialog {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 22px 52px rgba(15, 23, 42, 0.22) !important;
  color: var(--sav-light-text) !important;
  display: grid !important;
  gap: 12px !important;
  max-width: 430px !important;
  padding: 22px !important;
  width: min(100%, 430px) !important;
}

.sav-new-supplier-dialog h2 {
  color: var(--sav-light-heading) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.sav-new-supplier-dialog p {
  color: var(--sav-light-muted) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.sav-new-supplier-dialog strong {
  color: var(--sav-light-heading) !important;
  font-weight: 700 !important;
}

.sav-new-supplier-error {
  color: #b91c1c !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.sav-new-supplier-actions {
  display: flex !important;
  gap: 9px !important;
  justify-content: flex-end !important;
  margin-top: 4px !important;
}

.sav-new-supplier-actions button {
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  min-height: 36px !important;
  padding: 0 15px !important;
}

.sav-new-supplier-secondary {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  color: var(--sav-light-text) !important;
}

.sav-new-supplier-primary {
  background: var(--sav-accent) !important;
  border: 1px solid transparent !important;
  color: #ffffff !important;
}

.sav-new-supplier-primary:disabled {
  cursor: progress !important;
  opacity: 0.72 !important;
}

.sav-new-supplier-toast {
  background: #111827 !important;
  border-radius: 999px !important;
  bottom: 24px !important;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.22) !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  left: 50% !important;
  padding: 11px 16px !important;
  position: fixed !important;
  transform: translateX(-50%) !important;
  z-index: 300 !important;
}

.sav-supplier-create-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.38) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 24px !important;
  position: fixed !important;
  z-index: 300 !important;
}

.sav-supplier-create-dialog {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 24px 58px rgba(15, 23, 42, 0.24) !important;
  color: var(--sav-light-text) !important;
  max-height: min(820px, calc(100vh - 48px)) !important;
  overflow: hidden !important;
  width: min(100%, 720px) !important;
}

.sav-supplier-create-header,
.sav-supplier-create-footer {
  align-items: center !important;
  display: flex !important;
  justify-content: space-between !important;
  padding: 18px 22px !important;
}

.sav-supplier-create-header {
  border-bottom: 1px solid var(--sav-light-border) !important;
}

.sav-supplier-create-footer {
  background: #f8fafc !important;
  border-top: 1px solid var(--sav-light-border) !important;
  gap: 10px !important;
  justify-content: flex-end !important;
}

.sav-supplier-create-header h2 {
  color: var(--sav-light-heading) !important;
  font-size: 20px !important;
  font-weight: 500 !important;
}

.sav-supplier-create-close {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: var(--sav-light-muted) !important;
  display: inline-flex !important;
  font-size: 20px !important;
  height: 34px !important;
  justify-content: center !important;
  width: 34px !important;
}

.sav-supplier-create-close:hover {
  background: #f1f5f9 !important;
  color: var(--sav-light-heading) !important;
}

.sav-supplier-create-body {
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  max-height: calc(100vh - 190px) !important;
  overflow-y: auto !important;
  padding: 20px 22px !important;
}

.sav-supplier-create-wide {
  grid-column: 1 / -1 !important;
}

.sav-supplier-create-field {
  display: grid !important;
  gap: 6px !important;
}

.sav-supplier-create-field span,
.sav-supplier-create-section-title {
  color: var(--sav-light-muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}

.sav-supplier-create-field input,
.sav-supplier-create-field select,
.sav-supplier-create-contact-grid input {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  color: var(--sav-light-text) !important;
  font-family: var(--sav-font-family) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.3 !important;
  min-height: 40px !important;
  outline: 0 !important;
  padding: 9px 11px !important;
  width: 100% !important;
}

.sav-supplier-create-field input:focus,
.sav-supplier-create-field select:focus,
.sav-supplier-create-contact-grid input:focus {
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent) 14%, transparent) !important;
}

.sav-supplier-create-contact {
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  display: grid !important;
  gap: 12px !important;
  padding: 14px !important;
}

.sav-supplier-create-contact-grid {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.sav-supplier-create-error {
  color: #b91c1c !important;
  font-size: 12px !important;
  min-height: 16px !important;
}

.sav-supplier-create-secondary,
.sav-supplier-create-primary {
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  min-height: 38px !important;
  padding: 0 18px !important;
}

.sav-supplier-create-secondary {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  color: var(--sav-light-text) !important;
}

.sav-supplier-create-primary {
  border: 1px solid transparent !important;
  color: #ffffff !important;
}

.sav-supplier-create-primary:disabled {
  cursor: progress !important;
  opacity: 0.72 !important;
}

.sav-settings-panel-hidden {
  display: none !important;
}

.sav-units-settings-panel {
  display: grid !important;
  gap: 18px !important;
}

.sav-access-settings-panel {
  display: grid !important;
  gap: 16px !important;
}

.sav-access-personal-card {
  align-items: center !important;
  background: #f8fafc !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 10px !important;
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: 54px minmax(0, 1fr) auto !important;
  min-height: 86px !important;
  padding: 16px !important;
}

.sav-access-profile-avatar {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6dfeb !important;
  border-radius: 999px !important;
  color: #005eb8 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  height: 54px !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 0 !important;
  width: 54px !important;
}

.sav-access-profile-avatar img {
  height: 100% !important;
  object-fit: cover !important;
  width: 100% !important;
}

.sav-access-profile-info {
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
}

.sav-access-profile-info small {
  color: #005eb8 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
}

.sav-access-profile-info strong {
  color: #0f172a !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-access-profile-info span {
  color: #64748b !important;
  font-size: 13px !important;
  font-weight: 400 !important;
}

.sav-access-profile-actions {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  justify-content: flex-end !important;
}

.sav-access-profile-actions button {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 999px !important;
  color: #0f172a !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  min-height: 34px !important;
  padding: 0 14px !important;
}

.sav-access-profile-actions button:hover,
.sav-access-profile-actions button:focus-visible {
  border-color: #b8c4d5 !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
  outline: 0 !important;
}

.sav-access-profile-actions .sav-access-profile-remove-photo:disabled {
  color: #94a3b8 !important;
  cursor: not-allowed !important;
  opacity: 0.72 !important;
}

.sav-access-profile-actions .sav-access-profile-logout {
  color: #64748b !important;
}

.sav-access-login-gate {
  align-items: center !important;
  background:
    radial-gradient(circle at 78% 18%, rgba(226, 232, 240, 0.36), transparent 25%),
    #ffffff !important;
  display: grid !important;
  inset: 0 !important;
  justify-items: center !important;
  min-height: 100vh !important;
  padding: 28px !important;
  position: fixed !important;
  z-index: 2147483000 !important;
}

.sav-access-login-dialog {
  background: #ffffff !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 12px !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.14) !important;
  display: grid !important;
  gap: 14px !important;
  max-width: 430px !important;
  padding: 28px !important;
  width: min(430px, calc(100vw - 48px)) !important;
}

.sav-access-login-brand {
  display: flex !important;
  justify-content: center !important;
}

.sav-access-login-brand img {
  height: 86px !important;
  object-fit: contain !important;
  width: auto !important;
}

.sav-access-login-tabs {
  background: #f8fafc !important;
  border: 1px solid #e5ebf4 !important;
  border-radius: 999px !important;
  display: grid !important;
  gap: 4px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  padding: 4px !important;
}

.sav-access-login-tab {
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #64748b !important;
  cursor: pointer !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  min-height: 34px !important;
}

.sav-access-login-tab.is-active {
  background: var(--sav-access-login-accent, #e30613) !important;
  color: #ffffff !important;
}

.sav-access-login-dialog h1 {
  color: #111827 !important;
  font-size: 28px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.1 !important;
  margin: 0 !important;
}

.sav-access-login-dialog p,
.sav-access-login-help {
  color: #64748b !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}

.sav-access-login-dialog label {
  display: grid !important;
  gap: 6px !important;
}

.sav-access-login-dialog label > span,
.sav-access-password-strength-meta span,
.sav-access-password-rules span {
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: none !important;
}

.sav-access-password-strength {
  background: #f8fafc !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 10px !important;
  display: grid !important;
  gap: 8px !important;
  margin-top: -2px !important;
  padding: 10px 12px !important;
}

.sav-access-password-strength-track {
  background: #e8eef6 !important;
  border-radius: 999px !important;
  height: 6px !important;
  overflow: hidden !important;
}

.sav-access-password-strength-track span {
  background: #ef4444 !important;
  border-radius: inherit !important;
  display: block !important;
  height: 100% !important;
  transition:
    background 160ms ease,
    width 160ms ease !important;
  width: var(--sav-password-strength, 0%) !important;
}

.sav-access-password-strength[data-score="2"] .sav-access-password-strength-track span {
  background: #f59e0b !important;
}

.sav-access-password-strength[data-score="3"] .sav-access-password-strength-track span {
  background: #2563eb !important;
}

.sav-access-password-strength[data-score="4"] .sav-access-password-strength-track span {
  background: #16a34a !important;
}

.sav-access-password-strength-meta {
  align-items: center !important;
  display: flex !important;
  justify-content: space-between !important;
  line-height: 1.2 !important;
}

.sav-access-password-strength-status {
  color: #334155 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.sav-access-password-rules {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}

.sav-access-password-rules span {
  background: #ffffff !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 999px !important;
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  padding: 5px 7px !important;
  transition:
    background 160ms ease,
    border-color 160ms ease,
    color 160ms ease !important;
}

.sav-access-password-rules span.is-ok {
  background: #ecfdf5 !important;
  border-color: #bbf7d0 !important;
  color: #047857 !important;
}

.sav-access-login-dialog input {
  background: #ffffff !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 8px !important;
  color: #111827 !important;
  font-size: 14px !important;
  min-height: 42px !important;
  outline: 0 !important;
  padding: 0 12px !important;
}

.sav-access-login-dialog input:focus {
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px var(--sav-accent-shadow-soft) !important;
}

.sav-access-login-primary {
  background: var(--sav-access-login-accent, #e30613) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 4px 12px rgba(227, 6, 19, 0.2) !important;
  color: #ffffff !important;
  cursor: pointer !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  min-height: 42px !important;
  padding: 0 18px !important;
  transition:
    box-shadow 160ms ease,
    filter 160ms ease,
    transform 160ms ease !important;
}

.sav-access-login-primary:hover:not(:disabled) {
  box-shadow: 0 7px 18px rgba(227, 6, 19, 0.26) !important;
  filter: brightness(0.96) !important;
  transform: translateY(-1px) !important;
}

.sav-access-login-primary:disabled {
  cursor: wait !important;
  opacity: 0.68 !important;
}

.sav-access-login-message {
  background: #fff1f2 !important;
  border: 1px solid #fecdd3 !important;
  border-radius: 8px !important;
  color: #be123c !important;
  padding: 10px 12px !important;
}

.sav-access-login-message.is-success {
  background: #ecfdf5 !important;
  border-color: #bbf7d0 !important;
  color: #047857 !important;
}

.sav-access-header,
.sav-access-current,
.sav-access-add-row {
  align-items: center !important;
  display: grid !important;
  gap: 12px !important;
}

.sav-access-header {
  grid-template-columns: minmax(0, 1fr) auto auto !important;
}

.sav-access-storage-status {
  background: #f1f5f9 !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 999px !important;
  color: #64748b !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 8px 12px !important;
}

.sav-access-storage-status.sav-access-storage-online {
  background: #dcfce7 !important;
  border-color: #86efac !important;
  color: #166534 !important;
}

.sav-access-current {
  grid-template-columns: minmax(0, 1fr) auto !important;
}

.sav-access-current label {
  display: grid !important;
  gap: 6px !important;
}

.sav-access-current label > span {
  color: var(--sav-light-muted) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.sav-access-current-email,
.sav-access-add-input,
.sav-access-role-select,
.sav-access-user-role {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  color: var(--sav-light-text) !important;
  font-family: var(--sav-font-family) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  min-height: 40px !important;
  outline: 0 !important;
  padding: 9px 11px !important;
}

.sav-access-current-email:focus,
.sav-access-add-input:focus,
.sav-access-role-select:focus,
.sav-access-user-role:focus {
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent) 14%, transparent) !important;
}

.sav-access-switch-button,
.sav-access-add-button {
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  min-height: 40px !important;
  padding: 0 18px !important;
}

.sav-access-role-menu {
  background: #ffffff !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 12px !important;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.16) !important;
  display: grid !important;
  gap: 4px !important;
  padding: 6px !important;
  position: fixed !important;
  z-index: 2147483300 !important;
}

.sav-access-role-menu button {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: #0f172a !important;
  cursor: pointer !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  justify-content: flex-start !important;
  min-height: 34px !important;
  padding: 8px 10px !important;
  text-align: left !important;
  width: 100% !important;
}

.sav-access-role-menu button:hover,
.sav-access-role-menu button:focus-visible {
  background: #f3f6fb !important;
  outline: none !important;
}

.sav-access-role-menu button.is-active {
  background: var(--sav-accent) !important;
  color: #ffffff !important;
}

.sav-access-add-row {
  grid-template-columns: minmax(0, 1fr) 130px auto !important;
}

.sav-access-list {
  display: grid !important;
  gap: 8px !important;
}

.sav-access-user-row {
  align-items: center !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: minmax(0, 1fr) 120px auto !important;
  min-height: 48px !important;
  padding: 8px 10px 8px 12px !important;
}

.sav-access-user-row span {
  display: grid !important;
  gap: 2px !important;
}

.sav-access-user-row strong {
  color: var(--sav-light-heading) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.sav-access-user-row small,
.sav-access-note {
  color: var(--sav-light-muted) !important;
  font-size: 12px !important;
}

.sav-access-user-row button {
  align-items: center !important;
  background: #fff1f2 !important;
  border: 1px solid #fecdd3 !important;
  border-radius: 999px !important;
  color: #e11d48 !important;
  display: inline-flex !important;
  height: 26px !important;
  justify-content: center !important;
  width: 26px !important;
}

.sav-access-user-row button:disabled {
  background: #f8fafc !important;
  border-color: var(--sav-light-border) !important;
  color: #cbd5e1 !important;
}

@media (max-width: 720px) {
  .sav-access-current,
  .sav-access-add-row,
  .sav-access-user-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .sav-access-user-row button {
    justify-self: start !important;
  }
}

.sav-units-settings-header {
  align-items: flex-start !important;
  display: flex !important;
  justify-content: space-between !important;
}

.sav-units-add-row {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: minmax(0, 1fr) minmax(96px, 180px) auto !important;
}

.sav-units-input {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  color: var(--sav-light-text) !important;
  font-family: var(--sav-font-family) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.3 !important;
  min-height: 40px !important;
  outline: 0 !important;
  padding: 9px 11px !important;
}

.sav-units-input:focus {
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent) 14%, transparent) !important;
}

.sav-units-shortcut-input {
  text-transform: none !important;
}

.sav-units-add-button {
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  min-height: 40px !important;
  padding: 0 18px !important;
}

.sav-units-add-button:disabled {
  cursor: progress !important;
  opacity: 0.72 !important;
}

.sav-units-list {
  display: grid !important;
  gap: 8px !important;
}

.sav-unit-row {
  align-items: center !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  min-height: 42px !important;
  padding: 8px 10px 8px 12px !important;
}

.sav-unit-name {
  color: var(--sav-light-heading) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.sav-unit-row small {
  color: var(--sav-light-muted) !important;
  font-size: 11px !important;
}

.sav-unit-delete {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #94a3b8 !important;
  display: inline-flex !important;
  font-size: 18px !important;
  height: 30px !important;
  justify-content: center !important;
  width: 30px !important;
}

.sav-unit-delete:hover {
  background: #fef2f2 !important;
  color: #dc2626 !important;
}

.sav-units-empty {
  background: #f8fafc !important;
  border-radius: 8px !important;
  color: var(--sav-light-muted) !important;
  font-size: 13px !important;
  padding: 14px !important;
}

.sav-quote-unit-input.sav-unit-known {
  border-color: color-mix(in srgb, #16a34a 34%, var(--sav-light-border)) !important;
}

.sav-quote-unit-input.sav-unit-unknown {
  border-color: #f59e0b !important;
  box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.12) !important;
}

.sav-new-unit-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.34) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 24px !important;
  position: fixed !important;
  z-index: 305 !important;
}

.sav-new-unit-dialog {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 22px 52px rgba(15, 23, 42, 0.22) !important;
  color: var(--sav-light-text) !important;
  display: grid !important;
  gap: 13px !important;
  max-width: 460px !important;
  padding: 22px !important;
  width: min(100%, 460px) !important;
}

.sav-new-unit-dialog h2 {
  color: var(--sav-light-heading) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.sav-new-unit-dialog p {
  color: var(--sav-light-muted) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.sav-new-unit-list {
  display: grid !important;
  gap: 8px !important;
}

.sav-new-unit-option {
  align-items: center !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  color: var(--sav-light-text) !important;
  display: flex !important;
  font-size: 14px !important;
  gap: 10px !important;
  min-height: 38px !important;
  padding: 8px 10px !important;
}

.sav-new-unit-option input {
  accent-color: var(--sav-accent) !important;
}

.sav-new-unit-error {
  color: #b91c1c !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.sav-new-unit-actions {
  display: flex !important;
  gap: 9px !important;
  justify-content: flex-end !important;
  margin-top: 2px !important;
}

.sav-new-unit-actions button {
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  min-height: 36px !important;
  padding: 0 15px !important;
}

.sav-new-unit-secondary {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  color: var(--sav-light-text) !important;
}

.sav-new-unit-primary {
  background: var(--sav-accent) !important;
  border: 1px solid transparent !important;
  color: #ffffff !important;
}

.sav-new-unit-primary:disabled {
  cursor: progress !important;
  opacity: 0.72 !important;
}

.sav-forecast-client-dropdown {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18) !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 2px !important;
  overflow-y: auto !important;
  padding: 4px !important;
  position: fixed !important;
  z-index: 260 !important;
}

.sav-forecast-client-dropdown[hidden] {
  display: none !important;
}

.sav-forecast-client-option,
.sav-forecast-client-empty {
  border-radius: 6px !important;
  box-sizing: border-box !important;
  color: var(--sav-light-text) !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  min-height: 28px !important;
  padding: 7px 9px !important;
  text-align: left !important;
  width: 100% !important;
}

.sav-forecast-client-option {
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
}

.sav-forecast-client-option:hover,
.sav-forecast-client-option.is-active {
  background: color-mix(in srgb, var(--sav-accent) 8%, #ffffff) !important;
  color: var(--sav-accent) !important;
}

.sav-forecast-client-empty {
  color: var(--sav-light-muted) !important;
}

.sav-new-client-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.34) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 24px !important;
  position: fixed !important;
  z-index: 290 !important;
}

.sav-new-client-dialog {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 22px 52px rgba(15, 23, 42, 0.22) !important;
  color: var(--sav-light-text) !important;
  display: grid !important;
  gap: 12px !important;
  max-width: 430px !important;
  padding: 22px !important;
  width: min(100%, 430px) !important;
}

.sav-new-client-dialog h2 {
  color: var(--sav-light-heading) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.sav-new-client-dialog p {
  color: var(--sav-light-muted) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.sav-new-client-dialog strong {
  color: var(--sav-light-heading) !important;
  font-weight: 700 !important;
}

.sav-new-client-error {
  color: #b91c1c !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.sav-new-client-actions {
  display: flex !important;
  gap: 9px !important;
  justify-content: flex-end !important;
  margin-top: 4px !important;
}

.sav-new-client-actions button {
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  min-height: 36px !important;
  padding: 0 15px !important;
}

.sav-new-client-secondary {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  color: var(--sav-light-text) !important;
}

.sav-new-client-primary {
  background: var(--sav-accent) !important;
  border: 1px solid transparent !important;
  color: #ffffff !important;
}

.sav-new-client-primary:disabled {
  cursor: progress !important;
  opacity: 0.72 !important;
}

.pdf-preview-header .pdf-preview-actions {
  align-items: center !important;
  display: inline-flex !important;
  gap: 8px !important;
}

.pdf-preview-header .pdf-remove-button {
  background: #fff1f2 !important;
  border: 1px solid rgba(227, 6, 19, 0.28) !important;
  border-radius: 999px !important;
  color: var(--sav-accent) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  min-height: 30px !important;
  padding: 0 12px !important;
}

.pdf-preview-header .pdf-remove-button:hover {
  background: #ffe4e6 !important;
  border-color: rgba(227, 6, 19, 0.42) !important;
}

.pdf-preview-header .pdf-remove-button:disabled {
  cursor: wait !important;
  opacity: 0.58 !important;
}

html.sav-entity-file-preview-active {
  overflow: clip !important;
}

body.sav-entity-file-preview-active {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

.sav-entity-file-preview-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.48) !important;
  box-sizing: border-box !important;
  contain: layout style paint !important;
  display: flex !important;
  height: 100vh !important;
  height: 100dvh !important;
  inset: 0 !important;
  isolation: isolate !important;
  justify-content: center !important;
  margin: 0 !important;
  max-height: none !important;
  max-width: none !important;
  overflow: hidden !important;
  padding: clamp(12px, 2.5vw, 24px) !important;
  position: fixed !important;
  width: 100vw !important;
  width: 100dvw !important;
  z-index: 140 !important;
}

.sav-entity-file-preview-modal {
  box-sizing: border-box !important;
  height: min(820px, calc(100vh - 48px)) !important;
  height: min(820px, calc(100dvh - 48px)) !important;
  margin: 0 !important;
  max-height: calc(100vh - 48px) !important;
  max-height: calc(100dvh - 48px) !important;
  max-width: 1080px !important;
  min-height: 0 !important;
  min-width: 0 !important;
  width: min(1080px, calc(100vw - 48px)) !important;
  width: min(1080px, calc(100dvw - 48px)) !important;
}

.sav-entity-file-preview-backdrop[data-savills-document-state="missing"] .sav-entity-file-preview-modal {
  height: min(420px, calc(100vh - 48px)) !important;
  height: min(420px, calc(100dvh - 48px)) !important;
}

.sav-entity-file-preview-modal .pdf-preview-header {
  flex: 0 0 auto !important;
  min-height: 58px !important;
  padding: 0 18px !important;
}

.sav-entity-file-preview-modal .pdf-preview-header > strong {
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  max-width: min(680px, 66vw) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-entity-file-preview-actions {
  align-items: center !important;
  display: inline-flex !important;
  gap: 8px !important;
}

.sav-entity-file-preview-open,
.sav-entity-file-preview-modal .pdf-preview-close {
  align-items: center !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 36px !important;
  text-decoration: none !important;
}

.sav-entity-file-preview-open {
  background: #ffffff !important;
  border: 1px solid #d8dee9 !important;
  color: #334155 !important;
  padding: 0 15px !important;
}

.sav-entity-file-preview-open:hover {
  background: #f8fafc !important;
  border-color: #b8c2d1 !important;
}

.sav-entity-file-preview-modal .pdf-preview-close {
  background: #f8fafc !important;
  border: 1px solid #d8dee9 !important;
  color: #475569 !important;
  font-size: 23px !important;
  height: 36px !important;
  padding: 0 !important;
  width: 36px !important;
}

.sav-entity-file-preview-body {
  align-items: stretch !important;
  background: #eef1f5 !important;
  display: flex !important;
  flex: 1 1 auto !important;
  justify-content: center !important;
  min-height: 0 !important;
  overflow: auto !important;
  padding: 18px !important;
}

.sav-entity-file-preview-body iframe {
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12) !important;
  flex: 1 1 auto !important;
  height: 100% !important;
  min-height: 540px !important;
  width: 100% !important;
}

.sav-entity-file-preview-body img {
  align-self: center !important;
  background: #ffffff !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12) !important;
  display: block !important;
  max-height: 100% !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

.sav-entity-file-preview-empty {
  align-items: center !important;
  background: #f8fafc !important;
  color: #64748b !important;
  flex-direction: column !important;
  gap: 10px !important;
  justify-content: center !important;
  padding: clamp(24px, 6vw, 64px) !important;
  text-align: center !important;
}

.sav-entity-file-preview-empty::before {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d8dee9 !important;
  border-radius: 50% !important;
  color: #64748b !important;
  content: "i" !important;
  display: inline-flex !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  height: 42px !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin-bottom: 2px !important;
  width: 42px !important;
}

.sav-entity-file-preview-empty strong {
  color: #1f2937 !important;
  font-size: 17px !important;
}

.sav-entity-file-preview-empty p {
  font-size: 14px !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  max-width: 540px !important;
}

#root > div.dark .sav-entity-file-preview-modal .pdf-preview-header > strong {
  color: #f8fafc !important;
}

#root > div.dark .sav-entity-file-preview-open,
#root > div.dark .sav-entity-file-preview-modal .pdf-preview-close {
  background: #111827 !important;
  border-color: #334155 !important;
  color: #e2e8f0 !important;
}

@media (max-width: 700px) {
  .sav-entity-file-preview-backdrop {
    padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)) !important;
  }

  .sav-entity-file-preview-modal {
    height: calc(100vh - 16px) !important;
    height: calc(100dvh - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    width: 100% !important;
  }

  .sav-entity-file-preview-backdrop[data-savills-document-state="missing"] .sav-entity-file-preview-modal {
    height: min(360px, calc(100vh - 16px)) !important;
    height: min(360px, calc(100dvh - 16px)) !important;
  }

  .sav-entity-file-preview-body {
    padding: 8px !important;
  }

  .sav-entity-file-preview-body iframe {
    min-height: 440px !important;
  }
}

/* 2026-07-28: analytical forecasts, fee evolution and persistent Dashboard ordering. */
.sav-dashboard-setting-option {
  cursor: default !important;
}

.sav-dashboard-setting-actions,
.sav-dashboard-setting-order {
  align-items: center !important;
  display: inline-flex !important;
}

.sav-dashboard-setting-actions {
  gap: 10px !important;
}

.sav-dashboard-setting-order {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 999px !important;
  gap: 2px !important;
  padding: 2px !important;
}

.sav-dashboard-setting-order button {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 50% !important;
  color: #526174 !important;
  display: inline-flex !important;
  font-size: 14px !important;
  height: 26px !important;
  justify-content: center !important;
  line-height: 1 !important;
  padding: 0 !important;
  transition: background-color 140ms ease, color 140ms ease !important;
  width: 26px !important;
}

.sav-dashboard-setting-order button:hover {
  background: #e8f0fe !important;
  color: #1a73e8 !important;
}

.sav-dashboard-setting-order button:focus-visible {
  box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.14) !important;
  outline: none !important;
}

.sav-dashboard-setting-toggle {
  align-items: center !important;
  cursor: pointer !important;
  display: inline-flex !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="feesEvolution"] {
  --sav-dashboard-chart-accent: #d93025;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="forecasts"] {
  min-height: 0 !important;
}

.sav-dashboard-forecast-analytics {
  display: grid !important;
  gap: 12px !important;
  margin-top: 12px !important;
  min-width: 0 !important;
}

.sav-dashboard-forecast-analytics-summary {
  display: grid !important;
  gap: 9px !important;
  grid-template-columns: repeat(auto-fit, minmax(min(165px, 100%), 1fr)) !important;
}

.sav-dashboard-forecast-analytics-summary > span {
  background: #ffffff !important;
  border: 1px solid #dce4ef !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.05) !important;
  color: #64748b !important;
  display: grid !important;
  font-size: 10.5px !important;
  gap: 5px !important;
  min-width: 0 !important;
  padding: 11px 12px !important;
}

.sav-dashboard-forecast-analytics-summary strong {
  color: #172033 !important;
  font-size: 15px !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 600 !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-forecast-analytics-summary .is-positive strong,
.sav-dashboard-forecast-variance.is-positive {
  color: #137333 !important;
}

.sav-dashboard-forecast-analytics-summary .is-negative strong,
.sav-dashboard-forecast-variance.is-negative {
  color: #c5221f !important;
}

.sav-dashboard-forecast-table-wrap {
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  max-height: min(56vh, 540px) !important;
  min-width: 0 !important;
  overflow: auto !important;
}

.sav-dashboard-forecast-analytics-table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
  font-variant-numeric: tabular-nums !important;
  min-width: 1040px !important;
  table-layout: fixed !important;
  width: 100% !important;
}

.sav-dashboard-forecast-analytics-table col.is-client {
  width: 17% !important;
}

.sav-dashboard-forecast-analytics-table col.is-building {
  width: 23% !important;
}

.sav-dashboard-forecast-analytics-table col.is-surface {
  width: 9% !important;
}

.sav-dashboard-forecast-analytics-table col.is-fees,
.sav-dashboard-forecast-analytics-table col.is-works {
  width: 12% !important;
}

.sav-dashboard-forecast-analytics-table col.is-margin-rate {
  width: 9% !important;
}

.sav-dashboard-forecast-analytics-table col.is-works-margin {
  width: 10% !important;
}

.sav-dashboard-forecast-analytics-table col.is-total {
  width: 8% !important;
}

.sav-dashboard-forecast-analytics-table caption {
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
}

.sav-dashboard-forecast-analytics-table th,
.sav-dashboard-forecast-analytics-table td {
  border-bottom: 1px solid #edf1f6 !important;
  box-sizing: border-box !important;
  padding: 10px 11px !important;
  text-align: right !important;
  vertical-align: middle !important;
}

.sav-dashboard-forecast-analytics-table th {
  background: #f8fafc !important;
  color: #526174 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  position: sticky !important;
  text-transform: uppercase !important;
  top: 0 !important;
  white-space: nowrap !important;
  z-index: 2 !important;
}

.sav-dashboard-forecast-analytics-table th:nth-child(-n + 2),
.sav-dashboard-forecast-analytics-table td:nth-child(-n + 2) {
  text-align: left !important;
}

.sav-dashboard-forecast-analytics-table td:nth-child(n + 3) {
  white-space: nowrap !important;
}

.sav-dashboard-forecast-analytics-table tbody tr:hover td {
  background: #fbfdff !important;
}

.sav-dashboard-forecast-analytics-table td {
  color: #334155 !important;
  font-size: 11px !important;
}

.sav-dashboard-forecast-analytics-table .sav-dashboard-forecast-margin-rate,
.sav-dashboard-forecast-analytics-table .sav-dashboard-forecast-margin-value {
  color: #0b57d0 !important;
  font-weight: 600 !important;
}

.sav-dashboard-forecast-analytics-table .sav-dashboard-forecast-total {
  color: #137333 !important;
  font-weight: 650 !important;
}

.sav-dashboard-forecast-analytics-table .sav-dashboard-forecast-empty-row td {
  color: #64748b !important;
  padding-block: 28px !important;
  text-align: center !important;
}

.sav-dashboard-forecast-analytics-table td strong,
.sav-dashboard-forecast-analytics-table td small {
  display: block !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-forecast-analytics-table td strong {
  color: #172033 !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
}

.sav-dashboard-forecast-analytics-table td small {
  color: #7b8798 !important;
  font-size: 10px !important;
  margin-top: 3px !important;
}

.sav-dashboard-forecast-comparison {
  display: grid !important;
  gap: 3px !important;
  margin-top: 8px !important;
}

.sav-dashboard-forecast-comparison::before,
.sav-dashboard-forecast-comparison::after {
  background: #eef2f7 !important;
  border-radius: 999px !important;
  content: "" !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  height: 4px !important;
}

.sav-dashboard-forecast-comparison::after {
  grid-row: 2 !important;
}

.sav-dashboard-forecast-comparison i {
  border-radius: 999px !important;
  display: block !important;
  grid-column: 1 !important;
  height: 4px !important;
  position: relative !important;
  width: var(--sav-forecast-width, 0%) !important;
  z-index: 1 !important;
}

.sav-dashboard-forecast-comparison .is-forecast {
  background: #1a73e8 !important;
  grid-row: 1 !important;
}

.sav-dashboard-forecast-comparison .is-realized {
  background: #137333 !important;
  grid-row: 2 !important;
}

.sav-dashboard-forecast-variance {
  font-weight: 600 !important;
  white-space: nowrap !important;
}

.sav-dashboard-forecast-analytics-table tfoot th,
.sav-dashboard-forecast-analytics-table tfoot td {
  background: #f8fafc !important;
  border-bottom: 0 !important;
  color: #172033 !important;
  font-size: 11px !important;
  font-weight: 650 !important;
  position: sticky !important;
  bottom: 0 !important;
}

.sav-dashboard-forecast-analytics-legend {
  align-items: center !important;
  color: #64748b !important;
  display: flex !important;
  flex-wrap: wrap !important;
  font-size: 10.5px !important;
  gap: 10px 18px !important;
}

.sav-dashboard-forecast-analytics-legend span {
  align-items: center !important;
  display: inline-flex !important;
  gap: 6px !important;
}

.sav-dashboard-forecast-analytics-legend i {
  background: #1a73e8 !important;
  border-radius: 999px !important;
  display: inline-block !important;
  height: 6px !important;
  width: 18px !important;
}

.sav-dashboard-forecast-analytics-legend i.is-realized {
  background: #137333 !important;
}

@media (max-width: 700px) {
  .sav-dashboard-setting-option {
    gap: 10px !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .sav-dashboard-setting-actions {
    justify-content: space-between !important;
  }

  .sav-dashboard-forecast-table-wrap {
    margin-inline: -8px !important;
    max-height: 500px !important;
  }

  .sav-dashboard-forecast-analytics-legend {
    align-items: flex-start !important;
    display: grid !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sav-dashboard-setting-order button {
    transition: none !important;
  }
}

.sav-quote-excel-icon {
  fill: none !important;
  height: 18px !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.65 !important;
  width: 18px !important;
}

.sav-quote-close-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.5) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 20px !important;
  position: fixed !important;
  z-index: 2147483600 !important;
}

.sav-quote-close-dialog {
  background: #ffffff !important;
  border: 1px solid #dadce0 !important;
  border-radius: 18px !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28) !important;
  box-sizing: border-box !important;
  max-width: 590px !important;
  padding: 25px !important;
  width: min(590px, calc(100vw - 32px)) !important;
}

.sav-quote-close-dialog > div:first-child > span {
  color: #1a73e8 !important;
  display: block !important;
  font-size: 11px !important;
  font-weight: 720 !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 6px !important;
  text-transform: uppercase !important;
}

.sav-quote-close-dialog h2 {
  color: #202124 !important;
  font-size: 21px !important;
  line-height: 1.25 !important;
  margin: 0 0 8px !important;
}

.sav-quote-close-dialog p {
  color: #5f6368 !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

.sav-quote-close-error {
  background: #fce8e6 !important;
  border-radius: 8px !important;
  color: #b3261e !important;
  display: block !important;
  font-size: 12px !important;
  margin-top: 14px !important;
  padding: 9px 11px !important;
}

.sav-quote-close-error[hidden] {
  display: none !important;
}

.sav-quote-close-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
  justify-content: flex-end !important;
  margin-top: 24px !important;
}

.sav-quote-close-actions button {
  background: #ffffff !important;
  border: 1px solid #dadce0 !important;
  border-radius: 999px !important;
  color: #3c4043 !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  min-height: 38px !important;
  padding: 0 17px !important;
}

.sav-quote-close-actions [data-quote-close-choice="discard"] {
  color: #b3261e !important;
}

.sav-quote-close-actions [data-quote-close-choice="save"] {
  background: #1a73e8 !important;
  border-color: #1a73e8 !important;
  color: #ffffff !important;
}

.sav-quote-close-actions button:disabled {
  cursor: wait !important;
  opacity: 0.58 !important;
}

@media (max-width: 620px) {
  .sav-quote-close-actions {
    flex-direction: column !important;
  }

  .sav-quote-close-actions button {
    width: 100% !important;
  }
}

.entity-list-table,
.project-list-table,
.quote-list-table,
.forecast-card,
.purchase-panel {
  max-width: 100%;
}

/* Keep project sorting visual-only: React retains ownership of every row. */
.project-list-table.sav-project-css-sorted {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.project-list-table.sav-project-css-sorted > .project-list-header {
  order: -1;
  flex: 0 0 auto;
}

.quote-list-table.sav-quote-css-sorted {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.quote-list-table.sav-quote-css-sorted > .quote-list-header {
  order: -1;
  flex: 0 0 auto;
}

.forecast-card,
.purchase-panel {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

.purchase-panel {
  scrollbar-gutter: stable;
}

.purchase-grid-header,
.purchase-grid-row,
.purchase-row-details {
  min-width: 1060px;
}

.forecast-card .responsive-table {
  min-width: 820px;
}

.forecast-card .responsive-table th:nth-child(-n + 2),
.forecast-card .responsive-table td:nth-child(-n + 2) {
  text-align: left !important;
}

.forecast-card .responsive-table th:nth-child(n + 3),
.forecast-card .responsive-table td:nth-child(n + 3) {
  text-align: right !important;
}

.forecast-card .responsive-table th:last-child,
.forecast-card .responsive-table td:last-child {
  text-align: center !important;
}

.forecast-card .responsive-table tbody td:first-child {
  position: relative !important;
}

.forecast-card .responsive-table input.sav-forecast-input {
  cursor: text !important;
  transition:
    background-color 0.14s ease,
    border-color 0.14s ease,
    box-shadow 0.14s ease !important;
}

.forecast-card .responsive-table input.sav-forecast-input:focus,
.forecast-card .responsive-table input.sav-forecast-input-focused {
  background: #ffffff !important;
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent) 12%, transparent) !important;
}

.forecast-card .responsive-table input.sav-forecast-client-input {
  padding-right: 24px !important;
}

.forecast-card .responsive-table input.sav-forecast-client-known {
  border-color: rgba(22, 163, 74, 0.36) !important;
  box-shadow: inset 3px 0 0 rgba(22, 163, 74, 0.62) !important;
}

.forecast-card .responsive-table input.sav-forecast-client-unknown {
  border-color: rgba(148, 163, 184, 0.45) !important;
  box-shadow: inset 3px 0 0 rgba(148, 163, 184, 0.68) !important;
}

.project-modal-backdrop {
  padding: 28px !important;
  z-index: 240 !important;
}

.project-modal {
  width: min(620px, 94vw) !important;
  max-height: calc(100vh - 48px) !important;
  border-radius: 24px !important;
  row-gap: 0 !important;
}

.project-modal-wide {
  width: min(1040px, 94vw) !important;
}

.project-modal-header {
  padding: 24px 30px 20px !important;
}

.project-modal-header h2 {
  font-size: 24px !important;
  line-height: 1.18 !important;
}

.project-modal-body {
  gap: 18px !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 24px 30px !important;
}

.project-modal-wide:not(.quote-modal) .project-modal-body {
  align-items: start !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.project-modal-wide:not(.quote-modal) .project-modal-body > label:nth-of-type(5),
.project-modal-wide:not(.quote-modal) .project-modal-body > .document-zone-block {
  grid-column: 1 / -1 !important;
}

.project-modal-wide:not(.quote-modal) textarea {
  min-height: 96px !important;
}

.project-modal label {
  gap: 8px !important;
  font-size: 13px !important;
}

.project-modal > label {
  padding-inline: 30px !important;
}

.project-modal > label:first-of-type {
  margin-top: 24px !important;
}

.project-modal > label + label {
  margin-top: 2px !important;
}

.project-modal input,
.project-modal select {
  min-height: 48px !important;
  border-radius: 16px !important;
  padding-inline: 16px !important;
  font-size: 15px !important;
}

.project-modal select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%2364748B%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
  background-position: right 15px center !important;
  background-repeat: no-repeat !important;
  background-size: 14px 14px !important;
  line-height: 1.2 !important;
  padding-right: 42px !important;
}

.project-modal select.sav-quote-required-select-invalid,
.project-modal select.sav-quote-client-select-invalid {
  background-color: #fff1f2 !important;
  border-color: #f87171 !important;
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.14) !important;
}

.project-modal button.sav-quote-submit-disabled,
.project-modal button.sav-quote-submit-disabled:hover {
  cursor: not-allowed !important;
  opacity: 0.48 !important;
  transform: none !important;
  box-shadow: none !important;
}

.project-modal textarea {
  min-height: 128px !important;
  border-radius: 16px !important;
  padding: 14px 16px !important;
  font-size: 15px !important;
}

.project-modal-footer {
  padding: 20px 30px 24px !important;
}

.project-modal-actions {
  gap: 12px !important;
}

.project-modal-actions button,
.project-modal-footer > button,
.action-button-primary,
.action-button-secondary {
  min-height: 44px;
  padding-inline: 18px;
}

.project-modal > .action-button-primary {
  min-height: 54px !important;
  margin: 10px 30px 30px !important;
  border-radius: 999px !important;
  font-size: 16px !important;
}

.project-modal-backdrop:has(.sav-purchase-project-modal) {
  align-items: center !important;
  backdrop-filter: blur(3px) !important;
  background: rgba(30, 41, 59, 0.42) !important;
  justify-content: center !important;
  padding: 24px !important;
}

.sav-purchase-project-modal {
  background: #ffffff !important;
  border: 1px solid #e1e6ef !important;
  border-radius: 20px !important;
  box-shadow: 0 28px 72px rgba(15, 23, 42, 0.24) !important;
  display: flex !important;
  flex-direction: column !important;
  max-height: none !important;
  overflow: hidden !important;
  width: min(600px, 94vw) !important;
}

.sav-purchase-project-modal .project-modal-header {
  align-items: center !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--sav-light-border) !important;
  display: flex !important;
  justify-content: space-between !important;
  order: 0 !important;
  padding: 22px 26px !important;
}

.sav-purchase-project-modal .project-modal-header h2 {
  align-items: center !important;
  display: inline-flex !important;
  font-size: 19px !important;
  font-weight: 600 !important;
  gap: 11px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

.sav-purchase-project-modal .project-modal-header h2::before {
  background: var(--sav-accent, #e30613) !important;
  border-radius: 4px !important;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--sav-accent, #e30613) 10%, transparent) !important;
  content: "" !important;
  height: 10px !important;
  width: 10px !important;
}

.sav-purchase-project-modal .project-modal-header button {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #64748b !important;
  display: inline-flex !important;
  height: 36px !important;
  justify-content: center !important;
  width: 36px !important;
}

.sav-purchase-project-modal .project-modal-header button:hover {
  background: #f1f5f9 !important;
  color: #111827 !important;
}

.sav-purchase-project-modal > .sav-purchase-native-project-field,
.sav-purchase-project-modal > .sav-purchase-linked-client-field {
  display: none !important;
}

.sav-purchase-relation-fields {
  background: #ffffff !important;
  display: grid !important;
  gap: 18px !important;
  order: 1 !important;
  padding: 24px 26px 26px !important;
}

.sav-purchase-relation-intro {
  display: grid !important;
  gap: 4px !important;
}

.sav-purchase-relation-intro > span {
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.sav-purchase-relation-intro > p {
  color: #64748b !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}

.sav-purchase-relation-field {
  display: grid !important;
  gap: 8px !important;
  margin: 0 !important;
}

.sav-purchase-relation-field > span {
  align-items: center !important;
  color: #334155 !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  gap: 8px !important;
  letter-spacing: 0 !important;
}

.sav-purchase-relation-field > span b {
  align-items: center !important;
  background: #f1f5f9 !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 999px !important;
  color: #475569 !important;
  display: inline-flex !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  height: 22px !important;
  justify-content: center !important;
  width: 22px !important;
}

.sav-purchase-relation-field select {
  background-color: #ffffff !important;
  border: 1px solid #d8dee9 !important;
  border-radius: 10px !important;
  color: #111827 !important;
  font-size: 14px !important;
  min-height: 46px !important;
  outline: none !important;
  padding: 0 42px 0 14px !important;
  width: 100% !important;
}

.sav-purchase-relation-field select:focus {
  border-color: var(--sav-accent, #e30613) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent, #e30613) 12%, transparent) !important;
}

.sav-purchase-relation-field select:disabled {
  background-color: #f8fafc !important;
  color: #94a3b8 !important;
  cursor: not-allowed !important;
  opacity: 1 !important;
}

.sav-purchase-project-help {
  color: #94a3b8 !important;
  font-size: 11px !important;
  line-height: 1.35 !important;
  margin-top: -2px !important;
}

.sav-purchase-project-modal > .sav-purchase-project-submit {
  align-self: stretch !important;
  border-radius: 10px !important;
  margin: 0 26px 26px !important;
  min-height: 46px !important;
  order: 2 !important;
  width: auto !important;
}

.sav-purchase-project-modal > .sav-purchase-project-submit:disabled {
  cursor: not-allowed !important;
  opacity: 0.44 !important;
}

#root > div.dark .sav-purchase-project-modal .project-modal-header {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
}

#root > div.dark .sav-purchase-project-modal,
#root > div.dark .sav-purchase-relation-fields {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
}

#root > div.dark .sav-purchase-relation-intro > span,
#root > div.dark .sav-purchase-relation-field > span {
  color: var(--sav-dark-text) !important;
}

#root > div.dark .sav-purchase-relation-intro > p,
#root > div.dark .sav-purchase-project-help {
  color: var(--sav-dark-muted) !important;
}

#root > div.dark .sav-purchase-relation-field select,
#root > div.dark .sav-purchase-relation-field select:disabled {
  background: var(--sav-dark-surface-raised) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark .project-modal select {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23CBD5E1%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

/* Dark mode: Google-like dark direction, independent from the OS theme. */
#root > div.dark {
  color-scheme: dark;
}

#root > div.dark .app-bg {
  background:
    radial-gradient(circle at 78% 16%, rgba(138, 180, 248, 0.11), transparent 25%),
    radial-gradient(circle at 52% 52%, rgba(232, 234, 237, 0.06), transparent 30%),
    var(--sav-dark-bg) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark [class~="dark:text-slate-100"],
#root > div.dark [class~="dark:text-white"],
#root > div.dark .page-title,
#root > div.dark .dashboard-card-value,
#root > div.dark .project-card h2,
#root > div.dark .quote-card h2,
#root > div.dark .settings-panel h2,
#root > div.dark .settings-panel h3,
#root > div.dark .company-info-card h3,
#root > div.dark .entity-list-name,
#root > div.dark .quote-amount,
#root > div.dark .project-empty strong,
#root > div.dark .quote-empty strong {
  color: var(--sav-dark-heading) !important;
}

#root > div.dark .fluid-entity-grid > .entity-card h3,
#root > div.dark .entity-card-detail-value {
  color: var(--sav-dark-heading) !important;
}

#root > div.dark [class~="dark:text-slate-300"],
#root > div.dark [class~="dark:text-slate-400"],
#root > div.dark .dashboard-card-label,
#root > div.dark .dashboard-card-caption,
#root > div.dark .project-address,
#root > div.dark .project-description,
#root > div.dark .quote-card-meta,
#root > div.dark .quote-card-gridline,
#root > div.dark .entity-list-line,
#root > div.dark .project-list-line,
#root > div.dark .quote-list-line,
#root > div.dark .purchase-empty,
#root > div.dark .project-empty,
#root > div.dark .quote-empty,
#root > div.dark .document-inline-empty {
  color: var(--sav-dark-muted) !important;
}

#root > div.dark .entity-card-detail-key {
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-purchase-supplier-dropdown {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.34) !important;
}

body:has(#root > div.dark) .sav-purchase-supplier-option {
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-purchase-supplier-option:hover,
body:has(#root > div.dark) .sav-purchase-supplier-option.is-active {
  background: rgba(227, 6, 19, 0.16) !important;
  color: #ffffff !important;
}

body:has(#root > div.dark) .sav-purchase-supplier-empty {
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-new-supplier-dialog {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-new-supplier-dialog h2,
body:has(#root > div.dark) .sav-new-supplier-dialog strong {
  color: var(--sav-dark-heading) !important;
}

body:has(#root > div.dark) .sav-new-supplier-dialog p {
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-new-supplier-secondary {
  background: var(--sav-dark-surface-soft) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-supplier-create-dialog {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-supplier-create-header,
body:has(#root > div.dark) .sav-supplier-create-footer,
body:has(#root > div.dark) .sav-supplier-create-contact {
  border-color: var(--sav-dark-border) !important;
}

body:has(#root > div.dark) .sav-supplier-create-footer {
  background: var(--sav-dark-surface-soft) !important;
}

body:has(#root > div.dark) .sav-supplier-create-header h2,
body:has(#root > div.dark) .sav-supplier-create-close:hover {
  color: var(--sav-dark-heading) !important;
}

body:has(#root > div.dark) .sav-supplier-create-close,
body:has(#root > div.dark) .sav-supplier-create-field span,
body:has(#root > div.dark) .sav-supplier-create-section-title {
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-supplier-create-close:hover {
  background: var(--sav-dark-border) !important;
}

body:has(#root > div.dark) .sav-supplier-create-field input,
body:has(#root > div.dark) .sav-supplier-create-field select,
body:has(#root > div.dark) .sav-supplier-create-contact-grid input,
body:has(#root > div.dark) .sav-supplier-create-secondary {
  background: var(--sav-dark-surface-soft) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-units-input,
body:has(#root > div.dark) .sav-unit-row,
body:has(#root > div.dark) .sav-new-unit-option,
body:has(#root > div.dark) .sav-new-unit-secondary {
  background: var(--sav-dark-surface-soft) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-unit-name,
body:has(#root > div.dark) .sav-new-unit-dialog h2 {
  color: var(--sav-dark-heading) !important;
}

body:has(#root > div.dark) .sav-unit-row small,
body:has(#root > div.dark) .sav-new-unit-dialog p {
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-units-empty {
  background: var(--sav-dark-surface-soft) !important;
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-new-unit-dialog {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-unit-delete:hover {
  background: rgba(239, 68, 68, 0.16) !important;
  color: #fca5a5 !important;
}

body:has(#root > div.dark) .sav-forecast-client-dropdown {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.34) !important;
}

body:has(#root > div.dark) .sav-forecast-client-option {
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-forecast-client-option:hover,
body:has(#root > div.dark) .sav-forecast-client-option.is-active {
  background: rgba(227, 6, 19, 0.16) !important;
  color: #ffffff !important;
}

body:has(#root > div.dark) .sav-forecast-client-empty {
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-new-client-dialog {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

body:has(#root > div.dark) .sav-new-client-dialog h2,
body:has(#root > div.dark) .sav-new-client-dialog strong {
  color: var(--sav-dark-heading) !important;
}

body:has(#root > div.dark) .sav-new-client-dialog p {
  color: var(--sav-dark-muted) !important;
}

body:has(#root > div.dark) .sav-new-client-secondary {
  background: var(--sav-dark-surface-soft) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark [class~="dark:bg-slate-800"],
#root > div.dark [class~="dark:bg-slate-900"],
#root > div.dark [class~="dark:bg-slate-950"],
#root > div.dark .sidebar-shell,
#root > div.dark .settings-panel,
#root > div.dark .dashboard-card,
#root > div.dark .entity-card,
#root > div.dark .entity-subcard,
#root > div.dark .entity-list-table,
#root > div.dark .project-card,
#root > div.dark .project-list-table,
#root > div.dark .quote-card,
#root > div.dark .quote-list-table,
#root > div.dark .forecast-card,
#root > div.dark .purchase-panel,
#root > div.dark .purchase-project,
#root > div.dark .company-info-card,
#root > div.dark .company-address-card,
#root > div.dark .document-drop-zone,
#root > div.dark .drop-zone,
#root > div.dark .project-modal,
#root > div.dark .pdf-preview-modal,
#root > div.dark .quote-action-menu {
  background-color: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35) !important;
}

#root > div.dark [class~="dark:bg-slate-900/70"] {
  background-color: rgba(41, 42, 45, 0.78) !important;
}

#root > div.dark [class~="dark:border-[#2d3748]"],
#root > div.dark [class~="dark:border-[#3c4043]"],
#root > div.dark [class~="dark:border-slate-700"],
#root > div.dark [class~="dark:border-slate-800"],
#root > div.dark .entity-list-header > span,
#root > div.dark .entity-list-line > span,
#root > div.dark .project-list-header > span,
#root > div.dark .project-list-line > span,
#root > div.dark .project-list-line > div,
#root > div.dark .quote-list-header > span,
#root > div.dark .quote-list-line > span,
#root > div.dark .company-address-row,
#root > div.dark .project-documents-block {
  border-color: var(--sav-dark-border) !important;
}

#root > div.dark .entity-list-header,
#root > div.dark .project-list-header,
#root > div.dark .quote-list-header,
#root > div.dark .purchase-grid-header,
#root > div.dark .responsive-table thead,
#root > div.dark .responsive-table tfoot,
#root > div.dark .company-address-row-header,
#root > div.dark .project-modal-footer,
#root > div.dark .project-modal-header,
#root > div.dark .quote-editor-toolbar,
#root > div.dark .pdf-preview-header {
  background-color: var(--sav-dark-surface-raised) !important;
  color: var(--sav-dark-muted) !important;
  border-color: var(--sav-dark-border) !important;
}

#root > div.dark .entity-list-line:hover,
#root > div.dark .project-list-line:hover,
#root > div.dark .quote-list-line:hover,
#root > div.dark .fluid-entity-grid > .entity-card:hover,
#root > div.dark .fluid-entity-grid > .entity-card:focus-visible,
#root > div.dark .fluid-entity-grid > .entity-card:focus-within,
#root > div.dark .quote-card:hover,
#root > div.dark .quote-card:focus-visible,
#root > div.dark .quote-card:focus-within,
#root > div.dark .project-card:hover,
#root > div.dark .project-card:focus-visible,
#root > div.dark .project-card:focus-within,
#root > div.dark .quote-action-menu button:hover,
#root > div.dark .project-delete:hover,
#root > div.dark .quote-action-trigger:hover,
#root > div.dark [class~="dark:hover:bg-[#2b3038]"]:hover,
#root > div.dark [class~="dark:hover:bg-slate-800"]:hover {
  background-color: var(--sav-dark-hover) !important;
}

#root > div.dark .fluid-entity-grid > .entity-card,
#root > div.dark .project-list-grid > .project-card,
#root > div.dark .quote-card-grid > .quote-card {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.32) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark .fluid-entity-grid > .entity-card:hover,
#root > div.dark .fluid-entity-grid > .entity-card:focus-visible,
#root > div.dark .fluid-entity-grid > .entity-card:focus-within,
#root > div.dark .project-list-grid > .project-card:hover,
#root > div.dark .project-list-grid > .project-card:focus-visible,
#root > div.dark .project-list-grid > .project-card:focus-within,
#root > div.dark .quote-card-grid > .quote-card:hover,
#root > div.dark .quote-card-grid > .quote-card:focus-visible,
#root > div.dark .quote-card-grid > .quote-card:focus-within {
  border-color: color-mix(in srgb, var(--sav-accent) 46%, var(--sav-dark-border)) !important;
  box-shadow:
    0 16px 34px rgba(0, 0, 0, 0.34),
    0 0 0 3px rgba(255, 107, 107, 0.12) !important;
  transform: translateY(-2px) !important;
}

#root > div.dark input,
#root > div.dark select,
#root > div.dark textarea,
#root > div.dark .legacy-select,
#root > div.dark .quote-input,
#root > div.dark .supplier-input,
#root > div.dark .ht-input,
#root > div.dark .invoice-amount-cell {
  background-color: var(--sav-dark-surface-soft) !important;
  border-color: var(--sav-dark-border-strong) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark input::placeholder,
#root > div.dark textarea::placeholder {
  color: var(--sav-dark-subtle) !important;
}

#root > div.dark option {
  background-color: var(--sav-dark-surface) !important;
  color: var(--sav-dark-text) !important;
}

.sav-filter-select {
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    color 160ms ease !important;
}

.sav-filter-select.sav-filter-active {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: color-mix(in srgb, var(--sav-accent) 7%, #ffffff) !important;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2712%27%20height%3D%2712%27%20viewBox%3D%270%200%2012%2012%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3%203L9%209M9%203L3%209%27%20stroke%3D%27%23E30613%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27/%3E%3C/svg%3E") !important;
  background-position: right 12px center !important;
  background-repeat: no-repeat !important;
  background-size: 12px 12px !important;
  border-color: color-mix(in srgb, var(--sav-accent) 58%, transparent) !important;
  box-shadow:
    0 0 0 3px var(--sav-accent-shadow-soft),
    inset 0 0 0 1px color-mix(in srgb, var(--sav-accent) 8%, transparent) !important;
  color: var(--sav-accent) !important;
  font-weight: 600 !important;
  padding-right: 36px !important;
}

#root > div.dark .sav-filter-select.sav-filter-active {
  background-color: color-mix(in srgb, var(--sav-accent) 12%, var(--sav-dark-surface)) !important;
  border-color: color-mix(in srgb, var(--sav-accent) 64%, transparent) !important;
  box-shadow:
    0 0 0 3px rgba(255, 107, 107, 0.13),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04) !important;
  color: #ffb3b3 !important;
}

.sav-project-date-filter {
  align-items: center !important;
  display: inline-flex !important;
  position: relative !important;
}

.sav-quote-created-sort-wrap,
.sav-project-created-sort-wrap {
  align-items: center !important;
  display: inline-flex !important;
}

.sav-quote-view-mode-hidden {
  display: none !important;
}

.sav-quote-created-sort,
.sav-project-created-sort {
  min-width: 136px !important;
  padding-right: 34px !important;
}

.sav-project-date-input {
  appearance: none !important;
  background: var(--sav-light-surface) !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 999px !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
  color: var(--sav-light-text) !important;
  font-size: 12px !important;
  min-height: 36px !important;
  min-width: 158px !important;
  outline: none !important;
  padding: 0 34px 0 14px !important;
}

.sav-project-date-input:focus,
.sav-project-date-filter.sav-filter-active .sav-project-date-input {
  background-color: color-mix(in srgb, var(--sav-accent) 5%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--sav-accent) 55%, transparent) !important;
  color: var(--sav-light-heading) !important;
}

.sav-project-date-clear {
  align-items: center !important;
  background: color-mix(in srgb, var(--sav-accent) 12%, transparent) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #e30613 !important;
  display: inline-flex !important;
  font-size: 13px !important;
  height: 20px !important;
  justify-content: center !important;
  line-height: 1 !important;
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 20px !important;
}

.sav-project-date-clear[hidden] {
  display: none !important;
}

.sav-project-date-hidden {
  display: none !important;
}

.sav-project-date-empty {
  border: 1px dashed var(--sav-light-border) !important;
  border-radius: 18px !important;
  color: var(--sav-light-muted) !important;
  margin-top: 14px !important;
  padding: 22px !important;
  text-align: center !important;
}

#root > div.dark .sav-project-date-input {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark .sav-project-date-filter.sav-filter-active .sav-project-date-input,
#root > div.dark .sav-project-date-input:focus {
  background-color: rgba(127, 29, 29, 0.24) !important;
  border-color: rgba(248, 113, 113, 0.65) !important;
}

#root > div.dark .sav-project-date-empty {
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-muted) !important;
}

.sav-company-logo-card .document-zone-title,
.sav-company-logo-card .document-file-list,
.company-settings-grid > .company-info-card:nth-child(2):has(.company-logo-preview) .document-zone-title,
.company-settings-grid > .company-info-card:nth-child(2):has(.company-logo-preview) .document-file-list {
  display: none !important;
}

.sav-company-logo-card.sav-company-logo-has-file .document-zone-block,
.company-settings-grid > .company-info-card:nth-child(2):has(.company-logo-preview img) .document-zone-block {
  display: none !important;
}

.sav-company-logo-card:not(.sav-company-logo-has-file) .company-logo-preview,
.company-settings-grid > .company-info-card:nth-child(2):not(:has(.company-logo-preview img)) .company-logo-preview {
  display: none !important;
}

.sav-company-logo-card .company-logo-preview,
.company-settings-grid > .company-info-card:nth-child(2) .company-logo-preview {
  align-items: center !important;
  background: #f8fafd !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  display: flex !important;
  justify-content: center !important;
  min-height: 164px !important;
  padding: 18px !important;
  position: relative !important;
}

.sav-company-logo-card .company-logo-preview img,
.company-settings-grid > .company-info-card:nth-child(2) .company-logo-preview img {
  display: block !important;
  max-height: 132px !important;
  max-width: min(100%, 280px) !important;
  object-fit: contain !important;
}

.sav-company-logo-card .document-zone-block,
.company-settings-grid > .company-info-card:nth-child(2) .document-zone-block {
  margin-top: 0 !important;
}

.sav-company-logo-card .document-drop-zone,
.company-settings-grid > .company-info-card:nth-child(2) .document-drop-zone {
  border-radius: 8px !important;
  min-height: 164px !important;
}

.sav-company-logo-remove {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 999px !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.14) !important;
  color: var(--sav-accent) !important;
  display: inline-flex !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  height: 24px !important;
  justify-content: center !important;
  line-height: 1 !important;
  position: absolute !important;
  right: 8px !important;
  top: 8px !important;
  width: 24px !important;
}

.sav-company-logo-remove:hover {
  background: #fff1f2 !important;
  border-color: rgba(227, 6, 19, 0.28) !important;
}

#root > div.dark .sav-company-logo-card .company-logo-preview,
#root > div.dark .company-settings-grid > .company-info-card:nth-child(2) .company-logo-preview {
  background: var(--sav-dark-surface-soft) !important;
  border-color: var(--sav-dark-border) !important;
}

#root > div.dark .sav-company-logo-remove {
  background: var(--sav-dark-surface-raised) !important;
  border-color: var(--sav-dark-border) !important;
  color: #ffb3b3 !important;
}

#root > div.dark .action-button-secondary,
#root > div.dark .project-delete,
#root > div.dark .quote-action-trigger {
  background-color: var(--sav-dark-surface-raised) !important;
  border-color: var(--sav-dark-border) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark .settings-tab:not(.settings-tab-active),
#root > div.dark .legacy-action:not(.legacy-action-round):not(.bg-\[\#16833A\]),
#root > div.dark .quote-action-menu button,
#root > div.dark .pdf-preview-close {
  color: var(--sav-dark-text) !important;
}

#root > div.dark .sidebar-shell nav button:not([style]) {
  color: var(--sav-dark-text) !important;
}

#root > div.dark .sidebar-shell nav button:not([style]):hover,
#root > div.dark .settings-tab:not(.settings-tab-active):hover {
  background-color: var(--sav-dark-hover) !important;
  color: var(--sav-dark-heading) !important;
}

@supports (background: color-mix(in srgb, red 10%, black)) {
  #root > div.dark .sidebar-shell nav button:not([style]):hover,
  #root > div.dark .sidebar-shell nav button.dark\:hover\:bg-\[\#2b3038\]:hover,
  #root > div.dark [class~="dark:hover:bg-[#2b3038]"]:hover,
  #root > div.dark [class~="dark:hover:bg-slate-800"]:hover,
  #root > div.dark .settings-tab:not(.settings-tab-active):hover {
    background-color: color-mix(in srgb, var(--sav-accent) 22%, var(--sav-dark-surface-raised)) !important;
    color: var(--sav-dark-heading) !important;
  }
}

#root > div.dark .document-drop-zone,
#root > div.dark .drop-zone,
#root > div.dark .project-empty,
#root > div.dark .quote-empty {
  border-style: dashed;
  background-color: rgba(48, 49, 52, 0.72) !important;
}

#root > div.dark .document-drop-zone,
#root > div.dark .drop-zone {
  transition:
    background-color 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease,
    transform 0.16s ease;
}

#root > div.dark .document-drop-zone:hover,
#root > div.dark .document-drop-zone:focus,
#root > div.dark .document-drop-zone:focus-within,
#root > div.dark .document-drop-zone-active,
#root > div.dark .drop-zone:hover,
#root > div.dark .drop-zone:focus,
#root > div.dark .drop-zone:focus-within,
#root > div.dark .drop-zone-active {
  background-color: rgba(138, 180, 248, 0.14) !important;
  border-color: var(--sav-dark-blue) !important;
  color: var(--sav-dark-blue) !important;
  box-shadow: 0 0 0 3px rgba(138, 180, 248, 0.14) !important;
  transform: translateY(-1px);
}

.quote-status-select,
.quote-status {
  --quote-status-bg: #e5e7eb;
  --quote-status-border: #9ca3af;
  --quote-status-ink: #374151;
  --quote-status-ring: rgba(107, 114, 128, 0.22);
  background-color: var(--quote-status-bg) !important;
  border-color: var(--quote-status-border) !important;
  border-radius: 999px !important;
  border-width: 1px !important;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    inset 0 0 0 1px color-mix(in srgb, var(--quote-status-border) 16%, transparent) !important;
  color: var(--quote-status-ink) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease !important;
}

.quote-status-select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23374151%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
  background-position: right 11px center !important;
  background-repeat: no-repeat !important;
  background-size: 14px 14px !important;
  min-height: 28px !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding: 0 31px 0 16px !important;
  text-align: center !important;
  text-align-last: center !important;
}

.quote-status-select:hover,
.quote-status-select:focus {
  box-shadow:
    0 0 0 3px var(--quote-status-ring),
    inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
}

.quote-status-select option,
.quote-status option {
  background-color: #ffffff !important;
  color: #202124 !important;
}

.quote-status-draft {
  --quote-status-bg: #f3f4f6;
  --quote-status-border: #9ca3af;
  --quote-status-ink: #374151;
  --quote-status-ring: rgba(107, 114, 128, 0.22);
}

.quote-status-created {
  --quote-status-bg: #f3f4f6;
  --quote-status-border: #9ca3af;
  --quote-status-ink: #374151;
  --quote-status-ring: rgba(107, 114, 128, 0.22);
}

.quote-status-sent {
  --quote-status-bg: #dbeafe;
  --quote-status-border: #60a5fa;
  --quote-status-ink: #1d4ed8;
  --quote-status-ring: rgba(59, 130, 246, 0.22);
}

.quote-status-accepted {
  --quote-status-bg: #dcfce7;
  --quote-status-border: #4ade80;
  --quote-status-ink: #166534;
  --quote-status-ring: rgba(22, 163, 74, 0.22);
}

.quote-status-lost {
  --quote-status-bg: #ffe4e6;
  --quote-status-border: #fb7185;
  --quote-status-ink: #9f1239;
  --quote-status-ring: rgba(225, 29, 72, 0.2);
}

.quote-status-archived {
  --quote-status-bg: #fee2e2;
  --quote-status-border: #f87171;
  --quote-status-ink: #991b1b;
  --quote-status-ring: rgba(220, 38, 38, 0.22);
}

.quote-status-select.quote-status-draft {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23374151%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

.quote-status-select.quote-status-sent {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%231D4ED8%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

.quote-status-select.quote-status-accepted {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23166534%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

.quote-status-select.quote-status-lost {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%239F1239%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

.quote-status-select.quote-status-archived {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23991B1B%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

.quote-status-select option[value="created"],
.quote-status option[value="created"] {
  display: none !important;
}

#root > div:not(.dark) .quote-status-select,
#root > div:not(.dark) .quote-status {
  background-color: var(--quote-status-bg) !important;
  border-color: var(--quote-status-border) !important;
  color: var(--quote-status-ink) !important;
}

.quote-action-menu .sav-quote-document-action-hidden {
  display: none !important;
}

.sav-quote-title-hidden,
.quote-list-header > .sav-quote-title-hidden,
.quote-list-line > .sav-quote-title-hidden {
  display: none !important;
}

.sav-quote-title-modal-hidden {
  display: none !important;
}

.quote-status-cell,
.quote-list-line > .quote-status-cell {
  justify-content: center !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 4 !important;
}

.quote-list-header > .quote-amount-header,
.quote-list-header > .quote-margin-header,
.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-amount {
  color: var(--sav-light-heading) !important;
  font-weight: 500 !important;
}

.quote-list-header > .quote-amount-header,
.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-amount {
  justify-content: flex-end !important;
  text-align: right !important;
}

.quote-list-header > .quote-margin-header,
.quote-list-line > .quote-margin-cell {
  justify-content: flex-end !important;
  text-align: right !important;
}

.quote-list-line > .quote-status-cell {
  align-items: center !important;
  overflow: visible !important;
  padding: 3px 4px !important;
}

.quote-list-line .quote-status-cell .quote-status-select,
.quote-list-line .quote-status-cell .quote-status,
.quote-list-line .quote-status-cell .sav-quote-status-trigger {
  border-radius: 999px !important;
  box-sizing: border-box !important;
  font-size: clamp(10px, 1.22cqw, 12px) !important;
  min-height: 28px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding-left: clamp(7px, 1cqw, 12px) !important;
  padding-right: clamp(23px, 2.5cqw, 30px) !important;
  width: 100% !important;
}

.quote-list-line .quote-status-cell .quote-status-select.sav-quote-status-native {
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  display: block !important;
  height: 28px !important;
  line-height: 1.1 !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 20 !important;
}

.quote-list-line .quote-status-cell .quote-status-select:not(.sav-quote-status-native),
.quote-list-line .quote-status-cell .quote-status-select.sav-quote-native-status-hidden {
  display: none !important;
  pointer-events: none !important;
}

.sav-quote-native-status-hidden {
  border: 0 !important;
  height: 1px !important;
  margin: 0 !important;
  opacity: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  width: 1px !important;
}

.quote-list-line .quote-status-cell .quote-status-select.sav-quote-native-status-hidden {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  width: 0 !important;
}

.sav-quote-status-trigger {
  align-items: center !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23374151%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
  background-position: right 11px center !important;
  background-repeat: no-repeat !important;
  background-size: 14px 14px !important;
  cursor: pointer !important;
  display: inline-flex !important;
  justify-content: center !important;
  overflow: hidden !important;
  position: relative !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  z-index: 2 !important;
}

.sav-quote-status-trigger:hover,
.sav-quote-status-trigger:focus-visible,
.sav-quote-status-trigger[aria-expanded="true"] {
  box-shadow:
    0 0 0 3px var(--quote-status-ring),
    inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
}

.sav-quote-status-menu {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.18) !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 132px !important;
  padding: 6px !important;
  position: absolute !important;
  right: 4px !important;
  top: calc(100% + 6px) !important;
  z-index: 150 !important;
}

.sav-quote-status-menu.sav-quote-status-menu-portal {
  bottom: auto !important;
  position: fixed !important;
  right: auto !important;
  z-index: 5100 !important;
}

.sav-quote-status-option {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: var(--sav-light-text) !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  justify-content: flex-start !important;
  min-height: 32px !important;
  padding: 7px 10px !important;
  text-align: left !important;
  width: 100% !important;
}

.sav-quote-status-option:hover,
.sav-quote-status-option:focus-visible,
.sav-quote-status-option[aria-selected="true"] {
  background: #f8fafc !important;
  color: var(--sav-light-heading) !important;
}

.quote-due-draft {
  color: #64748b !important;
}

.quote-due-normal {
  color: inherit !important;
}

.quote-due-warning {
  color: #f97316 !important;
  font-weight: 800 !important;
}

.quote-due-overdue {
  color: #dc2626 !important;
  font-weight: 800 !important;
}

.quote-due-signed {
  color: #16a34a !important;
  font-weight: 800 !important;
}

.quote-list-line.sav-quote-row-invalid > span:not(.quote-actions-cell):not(.quote-status-cell),
.quote-card.sav-quote-row-invalid h2,
.quote-card.sav-quote-row-invalid p,
.quote-card.sav-quote-row-invalid .quote-card-meta,
.quote-card.sav-quote-row-invalid .quote-card-gridline > * {
  text-decoration: line-through !important;
  text-decoration-thickness: 1.5px !important;
}

.quote-list-line.sav-quote-row-invalid > span:not(.quote-actions-cell):not(.quote-status-cell) {
  opacity: 0.72;
}

#root > div.dark .quote-status-select,
#root > div.dark .quote-status {
  background-color: var(--quote-status-bg) !important;
  border-color: var(--quote-status-border) !important;
  color: var(--quote-status-ink) !important;
}

#root > div.dark .quote-list-header > .quote-amount-header,
#root > div.dark .quote-list-header > .quote-margin-header,
#root > div.dark .quote-list-line > .quote-amount-cell,
#root > div.dark .quote-list-line > .quote-margin-cell,
#root > div.dark .quote-list-line > .quote-amount {
  color: var(--sav-dark-heading) !important;
}

#root > div.dark .quote-status-select option,
#root > div.dark .quote-status option {
  background-color: #202124 !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark .sav-quote-status-menu {
  background: var(--sav-dark-surface) !important;
  border-color: var(--sav-dark-border) !important;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.34) !important;
}

#root > div.dark .sav-quote-status-option {
  color: var(--sav-dark-text) !important;
}

#root > div.dark .sav-quote-status-option:hover,
#root > div.dark .sav-quote-status-option:focus-visible,
#root > div.dark .sav-quote-status-option[aria-selected="true"] {
  background: var(--sav-dark-surface-soft) !important;
  color: var(--sav-dark-heading) !important;
}

#root > div.dark .quote-status-draft {
  --quote-status-bg: #374151;
  --quote-status-border: #64748b;
  --quote-status-ink: #f3f4f6;
  --quote-status-ring: rgba(148, 163, 184, 0.2);
}

#root > div.dark .quote-status-created {
  --quote-status-bg: #374151;
  --quote-status-border: #64748b;
  --quote-status-ink: #f3f4f6;
  --quote-status-ring: rgba(148, 163, 184, 0.2);
}

#root > div.dark .quote-status-sent {
  --quote-status-bg: #172554;
  --quote-status-border: #3b82f6;
  --quote-status-ink: #bfdbfe;
  --quote-status-ring: rgba(59, 130, 246, 0.22);
}

#root > div.dark .quote-status-accepted {
  --quote-status-bg: #052e16;
  --quote-status-border: #22c55e;
  --quote-status-ink: #bbf7d0;
  --quote-status-ring: rgba(34, 197, 94, 0.22);
}

#root > div.dark .quote-status-lost {
  --quote-status-bg: #4c0519;
  --quote-status-border: #e11d48;
  --quote-status-ink: #fecdd3;
  --quote-status-ring: rgba(244, 63, 94, 0.2);
}

#root > div.dark .quote-status-archived {
  --quote-status-bg: #3f1d1d;
  --quote-status-border: #dc2626;
  --quote-status-ink: #fecaca;
  --quote-status-ring: rgba(248, 113, 113, 0.2);
}

#root > div.dark .quote-status-select.quote-status-draft {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23F3F4F6%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

#root > div.dark .quote-status-select.quote-status-sent {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23BFDBFE%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

#root > div.dark .quote-status-select.quote-status-accepted {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23BBF7D0%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

#root > div.dark .quote-status-select.quote-status-lost {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23FECDD3%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

#root > div.dark .quote-status-select.quote-status-archived {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23FECACA%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
}

#root > div.dark .ht-input-attached {
  color: var(--sav-dark-blue) !important;
}

#root > div.dark .invoice-summary-missing {
  --invoice-bg: #303134;
  --invoice-body-bg: #292a2d;
  --invoice-border: #5f6368;
  --invoice-icon-bg: #3c4043;
  --invoice-ink: #bdc1c6;
}

@media (max-width: 900px) {
  .app-main {
    padding-inline: 18px !important;
  }

  .filter-bar,
  .purchase-actions {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  .filter-bar > div,
  .purchase-filters {
    width: 100% !important;
  }

  .legacy-select,
  .purchase-filters select {
    width: 100% !important;
  }

  .purchase-grid-header,
  .purchase-grid-row,
  .purchase-row-details {
    min-width: 980px;
  }
}

@media (max-width: 640px) {
  .app-main {
    padding-inline: 14px !important;
    padding-top: 18px !important;
  }

  .page-title {
    font-size: 26px !important;
  }

  .sav-project-date-filter,
  .sav-project-date-input,
  .sav-quote-created-sort-wrap,
  .sav-quote-created-sort,
  .sav-project-created-sort-wrap,
  .sav-project-created-sort {
    width: 100% !important;
  }

  .sav-units-add-row,
  .sav-unit-row {
    grid-template-columns: 1fr !important;
  }

  .sav-unit-delete {
    justify-self: end !important;
  }

  .sav-new-unit-actions {
    flex-direction: column-reverse !important;
  }

  .sav-new-unit-actions button {
    width: 100% !important;
  }

  .project-modal-backdrop {
    align-items: flex-end !important;
    padding: 10px !important;
  }

  .project-modal,
  .project-modal-wide {
    width: 100% !important;
    max-height: 92vh !important;
    border-radius: 22px 22px 14px 14px !important;
  }

  .project-modal-header,
  .project-modal-body,
  .project-modal-footer {
    padding-inline: 18px !important;
  }

  .project-modal-wide:not(.quote-modal) .project-modal-body {
    grid-template-columns: 1fr !important;
  }

  .project-modal-wide:not(.quote-modal) .project-modal-body > label,
  .project-modal-wide:not(.quote-modal) .project-modal-body > .document-zone-block {
    grid-column: 1 / -1 !important;
  }

  .project-modal > label {
    padding-inline: 18px !important;
  }

  .project-modal > .action-button-primary {
    margin-inline: 18px !important;
    margin-bottom: 20px !important;
  }

  .project-modal-footer {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .project-modal-actions {
    flex-direction: column-reverse !important;
    width: 100% !important;
  }

  .project-modal-actions button,
  .project-modal-footer > button {
    width: 100% !important;
  }

  .purchase-grid-header,
  .purchase-grid-row,
  .purchase-row-details {
    min-width: 900px;
  }
}

/* Table fitting: every data grid stays inside its visible area. */
.entity-list-table,
.project-list-table,
.quote-list-table,
.forecast-card,
.purchase-panel,
.company-address-card {
  container-type: inline-size;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

.entity-list-row,
.entity-list-row-supplier,
.project-list-row,
.quote-list-row,
.company-address-row,
.purchase-grid-header,
.purchase-grid-row,
.purchase-row-details,
.purchase-empty {
  box-sizing: border-box !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.entity-list-row {
  grid-template-columns:
    minmax(0, 1.1fr)
    minmax(0, 1.15fr)
    minmax(0, 0.68fr)
    minmax(0, 0.62fr)
    minmax(0, 0.88fr)
    minmax(0, 0.98fr)
    minmax(0, 0.74fr)
    minmax(0, 1fr) !important;
}

.entity-list-row-supplier {
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 0.72fr)
    minmax(0, 1.05fr)
    minmax(0, 0.58fr)
    minmax(0, 0.58fr)
    minmax(0, 0.78fr)
    minmax(0, 0.92fr)
    minmax(0, 0.68fr)
    minmax(0, 0.95fr) !important;
}

.project-list-row {
  grid-template-columns:
    minmax(0, 1.1fr)
    minmax(0, 0.92fr)
    minmax(0, 1.2fr)
    minmax(0, 1.45fr)
    minmax(0, 1fr)
    minmax(0, 0.42fr) !important;
}

.quote-list-row {
  grid-template-columns:
    minmax(70px, 0.78fr)
    minmax(82px, 0.86fr)
    minmax(82px, 0.86fr)
    minmax(72px, 0.62fr)
    minmax(72px, 0.62fr)
    minmax(72px, 0.68fr)
    minmax(72px, 0.66fr)
    minmax(82px, 0.74fr)
    minmax(106px, 0.9fr)
    minmax(42px, 42px) !important;
}

@media (max-width: 900px) {
  .quote-list-row {
    grid-template-columns:
      minmax(58px, 0.72fr)
      minmax(58px, 0.76fr)
      minmax(58px, 0.76fr)
      minmax(54px, 0.58fr)
      minmax(58px, 0.6fr)
      minmax(58px, 0.62fr)
      minmax(54px, 0.58fr)
      minmax(64px, 0.66fr)
      minmax(86px, 0.86fr)
      minmax(34px, 34px) !important;
  }

  .quote-list-line .quote-status-cell .quote-status-select,
  .quote-list-line .quote-status-cell .quote-status {
    font-size: 10px !important;
    padding-left: 6px !important;
    padding-right: 20px !important;
  }

  .quote-list-line .quote-action-trigger {
    height: 30px !important;
    min-width: 30px !important;
    width: 30px !important;
  }
}

.company-address-row {
  grid-template-columns:
    minmax(0, 0.72fr)
    minmax(0, 1.25fr)
    minmax(0, 0.4fr)
    minmax(0, 0.34fr) !important;
}

.purchase-grid-header,
.purchase-grid-row,
.purchase-row-details {
  grid-template-columns:
    minmax(0, 0.44fr)
    minmax(0, 1.08fr)
    minmax(0, 1.08fr)
    minmax(0, 0.72fr)
    repeat(5, minmax(0, 0.86fr))
    minmax(0, 0.68fr)
    minmax(0, 0.8fr)
    minmax(0, 0.34fr) !important;
  gap: clamp(1px, 0.28cqw, 3px) !important;
}

.entity-list-header,
.entity-list-line,
.project-list-header,
.project-list-line,
.quote-list-header,
.quote-list-line,
.company-address-row,
.purchase-grid-header,
.purchase-grid-row,
.purchase-row-details,
.responsive-table {
  font-size: clamp(7px, 1.02cqw, 12px) !important;
}

.entity-list-header,
.project-list-header,
.quote-list-header,
.purchase-grid-header {
  font-size: clamp(6.5px, 0.9cqw, 10px) !important;
}

.entity-list-header > span,
.entity-list-line > span,
.entity-list-line > div,
.project-list-header > span,
.project-list-line > span,
.project-list-line > div,
.quote-list-header > span,
.quote-list-line > span,
.company-address-row > span,
.purchase-grid-header > *,
.purchase-grid-row > *,
.purchase-row-details > * {
  box-sizing: border-box !important;
  min-width: 0 !important;
}

.entity-list-header > span,
.entity-list-line > span,
.entity-list-line > div,
.project-list-header > span,
.project-list-line > span,
.project-list-line > div,
.quote-list-header > span,
.quote-list-line > span,
.company-address-row > span {
  line-height: 1.25 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
  word-break: break-word !important;
}

.purchase-grid-header > *,
.purchase-grid-row > *,
.purchase-row-details > * {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.entity-list-header > span,
.entity-list-line > span,
.entity-list-line > div,
.project-list-header > span,
.project-list-line > span,
.project-list-line > div,
.quote-list-header > span,
.quote-list-line > span,
.company-address-row > span {
  gap: clamp(2px, 0.5cqw, 5px) !important;
  min-height: clamp(20px, 3.2cqw, 34px) !important;
  padding-inline: clamp(2px, 0.72cqw, 8px) !important;
}

.entity-list-line,
.project-list-line,
.quote-list-line,
.company-address-row {
  align-items: stretch !important;
}

.entity-list-line > span,
.entity-list-line > div,
.project-list-line > span,
.project-list-line > div,
.quote-list-line > span,
.company-address-row > span {
  align-items: center !important;
  display: flex !important;
}

.entity-list-documents,
.project-list-documents,
.document-inline-list,
.document-inline-item,
.document-inline-item span {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
  word-break: break-word !important;
}

.document-inline-list,
.document-inline-item {
  flex-wrap: wrap !important;
}

.project-list-actions,
.quote-actions-cell,
.quote-list-line > .quote-actions-cell {
  overflow: visible !important;
  white-space: nowrap !important;
  word-break: normal !important;
}

.fluid-entity-grid > .entity-card,
.project-card,
.quote-card {
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

.fluid-card-grid > *,
.fluid-entity-grid > .entity-card,
.project-list-grid > .project-card,
.quote-card-grid > .quote-card,
.entity-list-stack,
.entity-list-stack-item,
.entity-list-static,
.entity-documents-block,
.project-documents-block,
.quote-card-meta,
.quote-card-gridline {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  word-break: break-word !important;
}

.fluid-entity-grid > .entity-card h3,
.fluid-entity-grid > .entity-card p,
.fluid-entity-grid > .entity-card span,
.project-card h2,
.project-card p,
.project-card span,
.quote-card h2,
.quote-card p,
.quote-card span,
.quote-card-gridline > *,
.entity-list-stack-item > *,
.entity-list-static,
.document-file-row,
.document-file-row span,
.document-file-list,
.entity-documents-block *,
.project-documents-block * {
  min-width: 0 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
  word-break: break-word !important;
}

.fluid-entity-grid > .entity-card button,
.project-card button,
.quote-card button,
.quote-action-trigger,
.quote-actions button,
.document-inline-item svg,
.document-file-row svg {
  flex: 0 0 auto !important;
  overflow: visible !important;
  white-space: nowrap !important;
  word-break: normal !important;
}

#root > div:not(.dark) .fluid-entity-grid > .entity-card h3,
#root > div:not(.dark) .project-list-grid > .project-card h2,
#root > div:not(.dark) .quote-card-grid > .quote-card h2,
#root > div:not(.dark) .entity-list-name,
#root > div:not(.dark) .project-list-name,
#root > div:not(.dark) .quote-reference,
#root > div.dark .fluid-entity-grid > .entity-card h3,
#root > div.dark .project-list-grid > .project-card h2,
#root > div.dark .quote-card-grid > .quote-card h2,
#root > div.dark .entity-list-name,
#root > div.dark .project-list-name,
#root > div.dark .quote-reference {
  color: var(--sav-accent) !important;
  font-weight: 600 !important;
}

.purchase-grid-header {
  padding: clamp(5px, 0.95cqw, 11px) clamp(5px, 1.1cqw, 12px) !important;
}

.purchase-grid-row {
  padding: clamp(6px, 1.05cqw, 12px) !important;
}

.purchase-row-details {
  min-height: clamp(38px, 4.8cqw, 52px) !important;
  padding: clamp(3px, 0.5cqw, 4px) clamp(4px, 0.75cqw, 8px) !important;
}

.purchase-grid-row input,
.purchase-row-details input,
.invoice-amount-cell,
.invoice-detail-cell input,
.ht-input,
.supplier-input,
.quote-input {
  min-width: 0 !important;
  max-width: 100% !important;
  font-size: inherit !important;
}

.purchase-grid-row input,
.purchase-row-details input {
  height: clamp(18px, 2.45cqw, 24px) !important;
  padding-inline: clamp(2px, 0.58cqw, 6px) !important;
}

.invoice-cell,
.invoice-summary {
  min-width: 0 !important;
  padding: clamp(3px, 0.75cqw, 8px) !important;
}

.invoice-inline,
.invoice-detail-cell {
  min-width: 0 !important;
  gap: clamp(1px, 0.28cqw, 4px) !important;
}

.invoice-inline input {
  flex-basis: clamp(22px, 4.2cqw, 42px) !important;
  width: clamp(22px, 4.2cqw, 42px) !important;
}

.pdf-icon,
.paid-pill,
.row-expand,
.project-collapse {
  flex-shrink: 1 !important;
  min-width: 0 !important;
}

.responsive-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 0 !important;
}

.responsive-table th,
.responsive-table td {
  box-sizing: border-box !important;
  max-width: none !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  padding-inline: clamp(2px, 0.72cqw, 12px) !important;
  text-overflow: clip !important;
  white-space: normal !important;
  word-break: break-word !important;
}

.responsive-table input {
  max-width: 100% !important;
}

.company-address-card {
  border-radius: 14px !important;
  padding: 14px 16px !important;
}

.company-address-title {
  align-items: center !important;
  display: flex !important;
  gap: 12px !important;
  justify-content: space-between !important;
  margin-bottom: 10px !important;
}

.company-address-title h3 {
  font-size: 15px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

.company-address-title button {
  align-items: center !important;
  background: color-mix(in srgb, var(--sav-accent) 6%, #ffffff) !important;
  border: 1px solid color-mix(in srgb, var(--sav-accent) 18%, transparent) !important;
  border-radius: 999px !important;
  color: var(--sav-accent) !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  gap: 5px !important;
  min-height: 30px !important;
  padding: 0 11px !important;
}

.company-address-title button svg {
  height: 14px !important;
  width: 14px !important;
}

.company-address-table {
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.company-address-row {
  grid-template-columns: minmax(110px, 0.74fr) minmax(0, 2fr) 52px 38px !important;
  min-height: 36px !important;
}

.company-address-row-header {
  min-height: 26px !important;
}

.company-address-row + .company-address-row {
  border-top: 1px solid var(--sav-light-border) !important;
}

.company-address-row > span {
  min-height: 36px !important;
  padding: 3px 6px !important;
}

.company-address-row-header > span {
  align-items: center !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  justify-content: flex-start !important;
  min-height: 26px !important;
  padding-block: 2px !important;
  text-transform: uppercase !important;
}

.company-address-row-header > span:nth-child(3),
.company-address-row-header > span:nth-child(4),
.company-address-default-cell,
.company-address-actions {
  justify-content: center !important;
  text-align: center !important;
}

.company-address-row input,
.company-address-row textarea {
  border-radius: 8px !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  min-height: 30px !important;
  padding: 5px 8px !important;
}

.company-address-row textarea {
  height: 30px !important;
  overflow: hidden !important;
  resize: none !important;
}

.company-address-row textarea:focus {
  height: 54px !important;
  overflow-y: auto !important;
}

.company-default-pill {
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  min-height: 24px !important;
  min-width: 36px !important;
  padding: 0 8px !important;
}

.company-address-actions button {
  align-items: center !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  height: 26px !important;
  justify-content: center !important;
  padding: 0 !important;
  width: 26px !important;
}

#root > div.dark .company-address-table,
#root > div.dark .company-address-row + .company-address-row {
  border-color: var(--sav-dark-border) !important;
}

#root > div.dark .company-address-title button {
  background: color-mix(in srgb, var(--sav-accent) 12%, var(--sav-dark-surface)) !important;
  border-color: color-mix(in srgb, var(--sav-accent) 26%, transparent) !important;
  color: color-mix(in srgb, var(--sav-accent) 70%, #ffffff) !important;
}

@media (max-width: 640px) {
  .entity-list-header,
  .entity-list-line,
  .project-list-header,
  .project-list-line,
  .quote-list-header,
  .quote-list-line,
  .company-address-row,
  .purchase-grid-header,
  .purchase-grid-row,
  .purchase-row-details,
  .responsive-table {
    font-size: clamp(6px, 1.9vw, 9px) !important;
  }

  .purchase-grid-header,
  .purchase-grid-row,
  .purchase-row-details {
    gap: 1px !important;
  }

  .purchase-grid-header,
  .purchase-grid-row {
    padding-inline: 4px !important;
  }
}

/* Achats: readable responsive grid, with compact cards below table width. */
.purchase-panel {
  --purchase-grid-columns:
    minmax(0, 0.38fr)
    minmax(0, 1.2fr)
    minmax(0, 1.2fr)
    minmax(0, 1.08fr)
    repeat(5, minmax(0, 1.02fr))
    minmax(0, 0.9fr)
    minmax(0, 1.2fr)
    minmax(0, 0.32fr);
}

.purchase-panel .purchase-grid-header,
.purchase-panel .purchase-grid-row,
.purchase-panel .purchase-row-details {
  grid-template-columns: var(--purchase-grid-columns) !important;
  column-gap: clamp(3px, 0.34cqw, 5px) !important;
  overflow: hidden !important;
}

.purchase-panel .purchase-grid-header {
  align-items: stretch !important;
  background-color: var(--sav-light-bg-soft) !important;
  min-height: 36px !important;
  padding: 0 clamp(7px, 0.78cqw, 10px) !important;
}

.purchase-panel .purchase-grid-header > span {
  align-items: center !important;
  display: flex !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding-inline: 2px !important;
}

.purchase-panel .purchase-grid-header > span:nth-child(2),
.purchase-panel .purchase-grid-header > span:nth-child(3) {
  justify-content: flex-start !important;
}

.purchase-panel .purchase-project-header {
  grid-template-columns: 34px minmax(105px, 1.15fr) minmax(0, 4.9fr) minmax(82px, 0.8fr) !important;
  gap: clamp(5px, 0.65cqw, 10px) !important;
  min-height: 48px !important;
  overflow: hidden !important;
  padding: 6px 10px !important;
}

.purchase-panel .project-collapse {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: start !important;
}

.purchase-panel .project-drag {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: end !important;
}

.purchase-panel .project-title-group {
  grid-column: 2 !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.purchase-panel .project-title,
.purchase-panel .project-client-input {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.purchase-panel .project-subtotals {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 2px clamp(7px, 0.86cqw, 12px) !important;
  grid-column: 3 !important;
  justify-content: center !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.purchase-panel .project-metric {
  align-items: baseline !important;
  display: inline-flex !important;
  flex: 0 1 auto !important;
  gap: 3px !important;
  line-height: 1.15 !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

.purchase-panel .project-metric > span,
.purchase-panel .project-metric > strong {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.purchase-panel .project-add-invoice {
  grid-column: 4 !important;
  justify-self: end !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding-inline: clamp(8px, 0.88cqw, 12px) !important;
  white-space: nowrap !important;
}

.purchase-panel .purchase-grid-row {
  align-items: center !important;
  min-height: 45px !important;
  padding: clamp(5px, 0.68cqw, 8px) clamp(7px, 0.78cqw, 10px) !important;
}

.purchase-panel .purchase-grid-row > * {
  align-self: center !important;
}

.purchase-panel .ht-cell {
  align-items: center !important;
  display: grid !important;
  gap: 2px !important;
  grid-template-columns: minmax(0, 1fr) clamp(15px, 1.55cqw, 18px) !important;
  min-width: 0 !important;
}

.purchase-panel .supplier-input,
.purchase-panel .ht-input {
  box-sizing: border-box !important;
  height: clamp(22px, 2.3cqw, 26px) !important;
  overflow: hidden !important;
  padding-inline: clamp(4px, 0.55cqw, 7px) !important;
  text-overflow: ellipsis !important;
  width: 100% !important;
}

.purchase-panel .ht-input,
.purchase-panel .invoice-amount-cell {
  text-align: right !important;
}

.purchase-panel .invoice-summary {
  align-items: stretch !important;
  border-radius: 8px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) clamp(17px, 1.75cqw, 21px) !important;
  min-height: clamp(24px, 2.55cqw, 29px) !important;
  overflow: hidden !important;
  padding: 0 0 0 clamp(2px, 0.34cqw, 4px) !important;
}

.purchase-panel .invoice-summary-empty {
  min-height: 24px !important;
}

.purchase-panel .invoice-summary .invoice-amount-cell {
  box-sizing: border-box !important;
  height: 100% !important;
  min-width: 0 !important;
  padding: 0 2px 0 0 !important;
  width: 100% !important;
}

.purchase-panel .invoice-summary .pdf-icon,
.purchase-panel .ht-cell .pdf-icon {
  height: 100% !important;
  min-height: 18px !important;
  width: 100% !important;
}

.purchase-panel .invoice-summary .pdf-icon {
  background: var(--invoice-bg) !important;
  justify-content: flex-end !important;
  padding-right: 1px !important;
}

.purchase-panel .invoice-summary .pdf-icon::before {
  left: -14px !important;
  width: 16px !important;
}

.purchase-panel .invoice-summary .pdf-icon svg {
  transform: translateX(-2px) !important;
}

.purchase-panel .invoice-summary .pdf-icon svg,
.purchase-panel .ht-cell .pdf-icon svg,
.purchase-panel .row-expand svg,
.purchase-panel .project-collapse svg,
.purchase-panel .project-add-invoice svg {
  flex: 0 0 auto !important;
}

.purchase-panel .purchase-total {
  align-self: center !important;
  display: grid !important;
  font-size: clamp(12.5px, 1.08cqw, 13.5px) !important;
  font-weight: 600 !important;
  height: clamp(24px, 2.55cqw, 29px) !important;
  justify-self: stretch !important;
  line-height: 1 !important;
  min-height: clamp(24px, 2.55cqw, 29px) !important;
  overflow: hidden !important;
  padding: 1px 2px 0 0 !important;
  place-items: center end !important;
  text-align: right !important;
  text-overflow: ellipsis !important;
  transform: translateY(4px) !important;
  width: 100% !important;
}

.purchase-panel .purchase-total span {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

.purchase-panel .purchase-rests {
  display: grid !important;
  gap: 1px !important;
  justify-self: stretch !important;
  line-height: 1.12 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-align: right !important;
  width: 100% !important;
}

.purchase-panel .purchase-rests > span {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.purchase-panel .row-expand {
  height: clamp(20px, 2.35cqw, 24px) !important;
  justify-self: center !important;
  width: clamp(20px, 2.35cqw, 24px) !important;
}

.purchase-panel .invoice-detail-cell {
  overflow: hidden !important;
}

.purchase-panel .invoice-detail-cell label {
  grid-template-columns: minmax(18px, 0.45fr) minmax(0, 1fr) !important;
  min-width: 0 !important;
}

.purchase-panel .invoice-detail-cell input,
.purchase-panel .paid-pill {
  box-sizing: border-box !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* Factures: client invoices reuse the Achat table grammar with quote-driven installments. */
.sav-client-invoice-main {
  container-type: inline-size;
}

.sav-client-invoice-main > [hidden] {
  display: none !important;
}

.sav-client-invoice-shell {
  display: block;
  width: 100%;
}

.sav-client-invoice-heading {
  margin: 0 0 21px !important;
}

.sav-client-invoice-heading h1 {
  color: var(--sav-text);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.1;
  margin: 0;
}

.sav-client-invoice-filters {
  align-items: center;
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  height: 44px;
  justify-content: flex-start;
  margin: 0 0 20px !important;
  min-height: 44px;
  width: 100%;
}

.sav-client-invoice-filters .sav-filter-icon {
  align-items: center;
  color: var(--sav-text);
  display: inline-flex;
  height: 32px;
  justify-content: center;
  width: 22px;
}

.sav-client-invoice-filters .sav-filter-icon svg {
  height: 18px;
  width: 18px;
}

.sav-client-invoice-filters .legacy-select {
  align-self: center;
  box-sizing: border-box;
  flex: 0 0 138px;
  font-size: 12px;
  font-weight: 400;
  height: 29px;
  min-height: 29px;
  min-width: 138px;
  padding-block: 0;
  text-transform: none;
  width: 138px;
}

.sav-client-invoice-add-project {
  margin-left: auto;
}

.sav-client-invoice-modal-actions svg {
  height: 16px;
  width: 16px;
}

.sav-client-invoice-add-project svg {
  height: 18px;
  width: 18px;
}

.sav-client-invoice-panel {
  --purchase-grid-columns:
    minmax(0, 0.34fr)
    minmax(0, 1.18fr)
    minmax(0, 1.14fr)
    minmax(0, 0.94fr)
    repeat(var(--invoice-installment-count, 6), minmax(0, 0.92fr))
    minmax(0, 0.78fr)
    minmax(0, 1.16fr)
    minmax(0, 0.3fr);
}

.sav-client-invoice-panel .purchase-grid-header > span:nth-child(3) {
  justify-content: flex-start !important;
}

.sav-client-invoice-panel .purchase-project-header {
  grid-template-columns: 34px minmax(116px, 1.04fr) minmax(0, 5.1fr) minmax(104px, 0.86fr) !important;
}

.sav-client-invoice-panel .project-metric-quote strong,
.sav-client-invoice-panel .project-metric-quote-accepted strong {
  color: var(--sav-red) !important;
}

.sav-client-invoice-panel .project-metric-quote-draft strong {
  color: var(--sav-text-muted) !important;
}

.sav-client-invoice-panel .project-metric-quote-sent strong {
  color: var(--sav-blue) !important;
}

.sav-client-invoice-panel .project-metric-invoice strong,
.sav-client-invoice-panel .project-metric-discount strong {
  color: var(--sav-blue) !important;
}

.sav-client-invoice-panel .project-metric-receive strong {
  color: var(--sav-red) !important;
}

.sav-client-invoice-panel .project-metric-pay strong {
  color: var(--sav-blue) !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell,
.sav-client-invoice-row .sav-invoice-total-ttc-cell {
  align-items: center;
  display: flex;
  min-width: 0;
}

.sav-client-invoice-row .sav-invoice-ref-cell {
  color: var(--sav-text-muted);
  font-size: 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sav-client-invoice-row .sav-invoice-total-ttc-cell {
  justify-content: flex-end;
  text-align: right;
}

.sav-client-invoice-document-present .pdf-icon {
  color: #16a34a !important;
}

.sav-client-invoice-document-missing .pdf-icon {
  color: var(--sav-text-muted) !important;
}

.sav-client-invoice-detail-cell select {
  border: 1px solid var(--sav-border);
  border-radius: 7px;
  color: var(--sav-text);
  font: inherit;
  min-height: 23px;
  padding: 2px 6px;
  width: 100%;
}

.sav-client-invoice-status-select.sav-client-invoice-status-draft select {
  appearance: none !important;
  background-color: #fff5f5 !important;
  border-color: rgba(227, 6, 19, 0.35) !important;
  color: var(--sav-red) !important;
}

.sav-client-invoice-status-select.sav-client-invoice-status-sent select {
  appearance: none !important;
  background-color: #eff6ff !important;
  border-color: rgba(0, 94, 184, 0.35) !important;
  color: var(--sav-blue) !important;
}

.sav-client-invoice-status-select.sav-client-invoice-status-paid select {
  appearance: none !important;
  background-color: #f0fdf4 !important;
  border-color: rgba(22, 163, 74, 0.35) !important;
  color: #15803d !important;
}

.sav-client-invoice-empty {
  align-items: center;
  color: var(--sav-text-muted);
  display: grid;
  gap: 6px;
  justify-items: center;
  min-height: 180px;
  padding: 32px;
  text-align: center;
}

.sav-client-invoice-empty strong {
  color: var(--sav-text);
}

main.app-main .quote-empty,
main.app-main .project-empty,
main.app-main .purchase-empty,
main.app-main .sav-client-invoice-empty,
main.app-main .sav-entity-empty-state,
#root > div:not(.dark) main.app-main .space-y-5 > div[class*="min-h-[260px]"][class*="border-dashed"],
main.app-main .space-y-5 > div[class*="min-h-[260px]"][class*="border-dashed"] {
  align-items: center !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  border: 1px dashed #d7dde7 !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  color: #6b7280 !important;
  display: flex !important;
  flex-direction: column !important;
  font-family: var(--sav-font-family) !important;
  gap: 12px !important;
  justify-content: center !important;
  line-height: 1.35 !important;
  min-height: 240px !important;
  padding: 32px !important;
  text-align: center !important;
  width: 100% !important;
}

main.app-main .purchase-panel:has(.purchase-empty),
main.app-main .sav-client-invoice-panel:has(.sav-client-invoice-empty) {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px dashed #d7dde7 !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  display: flex !important;
  justify-content: center !important;
  min-height: 240px !important;
  overflow: hidden !important;
}

main.app-main .purchase-panel:has(.purchase-empty) {
  margin-top: 20px !important;
}

main.app-main .purchase-panel:has(.purchase-empty) .purchase-grid-header,
main.app-main .sav-client-invoice-panel:has(.sav-client-invoice-empty) .purchase-grid-header {
  display: none !important;
}

main.app-main .purchase-panel:has(.purchase-empty) .purchase-empty,
main.app-main .sav-client-invoice-panel:has(.sav-client-invoice-empty) .sav-client-invoice-empty {
  border: 0 !important;
  border-radius: 0 !important;
  flex: 1 1 auto !important;
  min-height: 240px !important;
}

main.app-main .quote-empty > svg,
main.app-main .project-empty > svg,
main.app-main .sav-client-invoice-empty .sav-client-invoice-empty-icon,
main.app-main .sav-entity-empty-state .sav-entity-empty-icon,
main.app-main .space-y-5 > div[class*="min-h-[260px]"][class*="border-dashed"] svg {
  color: #5f6368 !important;
  flex: 0 0 28px !important;
  height: 28px !important;
  margin: 0 !important;
  width: 28px !important;
}

main.app-main .space-y-5 > div[class*="min-h-[260px]"][class*="border-dashed"] > div:first-child {
  background: transparent !important;
  border-radius: 0 !important;
  color: #5f6368 !important;
  margin: 0 !important;
  padding: 0 !important;
}

main.app-main .quote-empty:not(:has(svg))::before,
main.app-main .project-empty:not(:has(svg))::before {
  border: 2px solid #5f6368 !important;
  border-radius: 6px !important;
  box-sizing: border-box !important;
  content: "" !important;
  display: block !important;
  flex: 0 0 28px !important;
  height: 28px !important;
  margin: 0 !important;
  width: 28px !important;
}

main.app-main .purchase-empty::before {
  background: url("data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='20' r='1.5' stroke='%235f6368' stroke-width='2'/%3E%3Ccircle cx='18' cy='20' r='1.5' stroke='%235f6368' stroke-width='2'/%3E%3Cpath d='M3 4h2l2.2 10.2a2 2 0 0 0 2 1.6h7.9a2 2 0 0 0 1.9-1.4L21 8H6' stroke='%235f6368' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 28px 28px no-repeat !important;
  content: "" !important;
  display: block !important;
  flex: 0 0 28px !important;
  height: 28px !important;
  margin: 0 !important;
  width: 28px !important;
}

main.app-main .quote-empty strong,
main.app-main .project-empty strong,
main.app-main .purchase-empty strong,
main.app-main .sav-client-invoice-empty strong,
main.app-main .sav-entity-empty-state strong,
main.app-main .space-y-5 > div[class*="min-h-[260px]"][class*="border-dashed"] h3 {
  color: #111827 !important;
  font-family: var(--sav-font-family) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  margin: 0 !important;
}

main.app-main .quote-empty span,
main.app-main .project-empty span,
main.app-main .purchase-empty span,
main.app-main .sav-client-invoice-empty span,
main.app-main .sav-entity-empty-state span,
main.app-main .space-y-5 > div[class*="min-h-[260px]"][class*="border-dashed"] p {
  color: #6b7280 !important;
  font-family: var(--sav-font-family) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  max-width: 680px !important;
}

main.app-main .sav-entity-empty-state {
  margin-top: 20px !important;
}

.sav-client-invoice-panel:has(.sav-client-invoice-empty) {
  margin-top: 0 !important;
}

.sav-client-invoice-modal-backdrop {
  align-items: center;
  background: rgba(15, 23, 42, 0.38);
  display: flex;
  inset: 0;
  justify-content: center;
  position: fixed;
  z-index: 2500;
}

.sav-client-invoice-modal {
  background: var(--sav-surface);
  border: 1px solid var(--sav-border);
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.26);
  color: var(--sav-text);
  display: grid;
  gap: 14px;
  max-width: min(420px, calc(100vw - 32px));
  padding: 18px;
  width: 100%;
}

.sav-client-invoice-modal-header,
.sav-client-invoice-modal-actions {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.sav-client-invoice-modal-actions .action-button-primary {
  align-items: center !important;
  background: var(--sav-accent) !important;
  border: 1px solid var(--sav-accent) !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  display: inline-flex !important;
  font-weight: 500 !important;
  justify-content: center !important;
  min-height: 38px !important;
  min-width: 82px !important;
  padding: 0 18px !important;
}

.sav-client-invoice-modal-actions .action-button-secondary {
  align-items: center !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  color: #4b5563 !important;
  display: inline-flex !important;
  font-weight: 400 !important;
  justify-content: center !important;
  min-height: 38px !important;
  padding: 0 10px !important;
}

.sav-client-invoice-modal-header strong {
  font-size: 17px;
}

.sav-client-invoice-modal-header button {
  align-items: center;
  background: transparent;
  border: 1px solid var(--sav-border);
  border-radius: 9px;
  color: var(--sav-text);
  display: inline-flex;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.sav-client-invoice-modal label {
  display: grid;
  gap: 6px;
}

.sav-client-invoice-modal label span {
  color: var(--sav-text-muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.sav-client-invoice-modal select {
  border: 1px solid var(--sav-border);
  border-radius: 10px;
  color: var(--sav-text);
  min-height: 40px;
  padding: 0 12px;
}

.sav-client-invoice-error {
  color: var(--sav-red);
  font-size: 12px;
  min-height: 16px;
}

.sav-purchase-client-first-field {
  order: -10;
}

.sav-purchase-client-first-field select {
  width: 100%;
}

#root > div.dark .purchase-panel .purchase-grid-header {
  background-color: var(--sav-dark-surface-raised) !important;
}

@container (max-width: 920px) {
  .purchase-panel .purchase-grid-header {
    display: none !important;
  }

  .purchase-panel .purchase-project-header {
    grid-template-columns: 30px minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    min-height: 0 !important;
  }

  .purchase-panel .project-drag {
    display: none !important;
  }

  .purchase-panel .project-title-group {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .purchase-panel .project-subtotals {
    grid-column: 2 / 4 !important;
    grid-row: 2 !important;
    justify-content: flex-start !important;
  }

  .purchase-panel .project-add-invoice {
    grid-column: 3 !important;
    grid-row: 1 !important;
  }

  .purchase-panel .purchase-grid-row {
    grid-template-columns: 18px repeat(5, minmax(0, 1fr)) 24px !important;
    grid-template-rows: auto auto auto !important;
    min-height: 0 !important;
    row-gap: 7px !important;
  }

  .purchase-panel .purchase-grid-row > .drag-handle {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .purchase-panel .purchase-row-project-slot {
    display: none !important;
  }

  .purchase-panel .purchase-grid-row > .supplier-input {
    grid-column: 2 / span 2 !important;
    grid-row: 1 !important;
  }

  .purchase-panel .purchase-grid-row > .ht-cell {
    grid-column: 4 / span 3 !important;
    grid-row: 1 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(5) {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(6) {
    grid-column: 3 !important;
    grid-row: 2 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(7) {
    grid-column: 4 !important;
    grid-row: 2 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(8) {
    grid-column: 5 !important;
    grid-row: 2 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(9) {
    grid-column: 6 !important;
    grid-row: 2 !important;
  }

  .purchase-panel .purchase-grid-row > .purchase-total {
    grid-column: 2 / span 2 !important;
    grid-row: 3 !important;
    text-align: left !important;
  }

  .purchase-panel .purchase-grid-row > .purchase-rests {
    grid-column: 4 / span 3 !important;
    grid-row: 3 !important;
  }

  .purchase-panel .purchase-grid-row > .row-expand {
    grid-column: 7 !important;
    grid-row: 1 !important;
  }

  .purchase-panel .purchase-row-details {
    grid-template-columns: 18px repeat(5, minmax(0, 1fr)) 24px !important;
    min-height: 0 !important;
    row-gap: 7px !important;
  }

  .purchase-panel .details-spacer {
    display: none !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(2) {
    grid-column: 2 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(3) {
    grid-column: 3 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(4) {
    grid-column: 4 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(5) {
    grid-column: 5 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(6) {
    grid-column: 6 !important;
  }

  .purchase-panel .purchase-row-details > .delete-icon {
    grid-column: 7 !important;
  }
}

@container (max-width: 560px) {
  .purchase-panel .purchase-project-header {
    grid-template-columns: 28px minmax(0, 1fr) !important;
  }

  .purchase-panel .project-add-invoice {
    grid-column: 2 !important;
    grid-row: 3 !important;
    justify-self: start !important;
    margin-top: 4px !important;
  }

  .purchase-panel .project-subtotals {
    grid-column: 2 !important;
  }

  .purchase-panel .purchase-grid-row {
    grid-template-columns: 18px minmax(0, 1fr) 24px !important;
    grid-template-rows: repeat(10, auto) !important;
  }

  .purchase-panel .purchase-grid-row > .supplier-input {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .purchase-panel .purchase-grid-row > .ht-cell {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  .purchase-panel .purchase-grid-row > .row-expand {
    grid-column: 3 !important;
    grid-row: 1 / span 2 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(5),
  .purchase-panel .purchase-grid-row > :nth-child(6),
  .purchase-panel .purchase-grid-row > :nth-child(7),
  .purchase-panel .purchase-grid-row > :nth-child(8),
  .purchase-panel .purchase-grid-row > :nth-child(9),
  .purchase-panel .purchase-grid-row > .purchase-total,
  .purchase-panel .purchase-grid-row > .purchase-rests {
    grid-column: 2 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(5) {
    grid-row: 3 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(6) {
    grid-row: 4 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(7) {
    grid-row: 5 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(8) {
    grid-row: 6 !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(9) {
    grid-row: 7 !important;
  }

  .purchase-panel .purchase-grid-row > .purchase-total {
    grid-row: 8 !important;
  }

  .purchase-panel .purchase-grid-row > .purchase-rests {
    grid-row: 9 !important;
    text-align: left !important;
  }

  .purchase-panel .invoice-summary-empty {
    display: none !important;
  }

  .purchase-panel .purchase-row-details {
    grid-template-columns: 18px minmax(0, 1fr) 24px !important;
  }

  .purchase-panel .purchase-row-details > .invoice-detail-cell {
    grid-column: 2 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(2) {
    grid-row: 1 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(3) {
    grid-row: 2 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(4) {
    grid-row: 3 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(5) {
    grid-row: 4 !important;
  }

  .purchase-panel .purchase-row-details > :nth-child(6) {
    grid-row: 5 !important;
  }

  .purchase-panel .purchase-row-details > .delete-icon {
    grid-column: 3 !important;
    grid-row: 1 !important;
  }
}

/* Final Achats tuning: align project totals with amount columns and remove the
   reserved scrollbar gutter that left a white strip at the far right. */
.purchase-panel {
  scrollbar-gutter: auto !important;
}

.quote-list-line > .quote-actions-cell,
.quote-list-line .quote-actions {
  overflow: visible !important;
}

.quote-list-line {
  background: #ffffff !important;
  background-color: #ffffff !important;
  box-shadow: none !important;
  outline: 0 !important;
  position: relative !important;
  transform: none !important;
  cursor: default !important;
}

#root > div:not(.dark) .quote-list-line,
#root > div:not(.dark) .quote-list-line:hover,
#root > div:not(.dark) .quote-list-line:focus,
#root > div:not(.dark) .quote-list-line:focus-visible,
#root > div:not(.dark) .quote-list-line:focus-within {
  background: #ffffff !important;
  background-color: #ffffff !important;
  box-shadow: none !important;
  outline: 0 !important;
  transform: none !important;
}

#root > div.dark .quote-list-line,
#root > div.dark .quote-list-line:hover,
#root > div.dark .quote-list-line:focus,
#root > div.dark .quote-list-line:focus-visible,
#root > div.dark .quote-list-line:focus-within {
  background: var(--sav-dark-surface) !important;
  background-color: var(--sav-dark-surface) !important;
  box-shadow: none !important;
  outline: 0 !important;
  transform: none !important;
}

.quote-list-line > span,
.quote-list-line > div {
  background: transparent !important;
  background-color: transparent !important;
}

.quote-list-line > .quote-reference {
  cursor: pointer !important;
}

.quote-list-line > .quote-updated-cell,
.quote-list-line > .quote-status-cell,
.quote-list-line > .quote-actions-cell {
  cursor: default !important;
}

.quote-list-line:has(.quote-action-menu) {
  z-index: 70 !important;
}

.quote-list-line > .quote-actions-cell {
  align-items: center !important;
  display: flex !important;
  justify-content: center !important;
  isolation: isolate;
  cursor: default !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 5 !important;
}

.quote-list-line .quote-actions,
.quote-list-line .quote-action-trigger {
  align-items: center !important;
  display: flex !important;
  justify-content: center !important;
  pointer-events: auto !important;
  position: relative !important;
}

.quote-list-line .quote-actions {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 34px !important;
}

.quote-list-line:has(.quote-action-menu) > .quote-actions-cell {
  z-index: 75 !important;
}

.quote-action-menu {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.18) !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 156px !important;
  padding: 6px !important;
  position: absolute !important;
  right: 0 !important;
  top: calc(100% + 6px) !important;
  z-index: 140 !important;
}

.quote-action-menu.sav-quote-action-menu-portal {
  bottom: auto !important;
  position: fixed !important;
  right: auto !important;
  z-index: 5000 !important;
}

.quote-action-menu button {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: var(--sav-light-text) !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  justify-content: flex-start !important;
  min-height: 34px !important;
  padding: 8px 10px !important;
  text-align: left !important;
  width: 100% !important;
}

.quote-action-menu button:hover,
.quote-action-menu button:focus-visible {
  background: #f8fafc !important;
  color: var(--sav-light-heading) !important;
}

.quote-action-menu button.sav-quote-download-print-action {
  gap: 8px !important;
}

.sav-quote-download-print-icon,
.sav-download-print-icon {
  color: currentColor !important;
  display: block !important;
  flex: 0 0 auto !important;
  height: 17px !important;
  width: 17px !important;
}

.sav-quote-download-print-icon path,
.sav-download-print-icon path {
  fill: none !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 2 !important;
}

.quote-action-trigger,
#root > div:not(.dark) .quote-action-trigger,
#root > div.dark .quote-action-trigger {
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.quote-action-trigger:hover,
.quote-action-trigger:active,
.quote-action-trigger[aria-expanded="true"],
#root > div:not(.dark) .quote-action-trigger:hover,
#root > div:not(.dark) .quote-action-trigger:active,
#root > div:not(.dark) .quote-action-trigger[aria-expanded="true"],
#root > div.dark .quote-action-trigger:hover,
#root > div.dark .quote-action-trigger:active,
#root > div.dark .quote-action-trigger[aria-expanded="true"] {
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.quote-action-trigger:focus-visible {
  background-color: transparent !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--sav-accent) 28%, transparent) !important;
}

.quote-export-backdrop {
  align-items: center;
  background: rgba(15, 23, 42, 0.34);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 180;
}

.quote-export-dialog {
  background: #ffffff;
  border: 1px solid var(--sav-light-border);
  border-radius: 8px;
  box-shadow: 0 20px 44px rgba(15, 23, 42, 0.22);
  color: var(--sav-light-text);
  display: grid;
  gap: 12px;
  max-width: 340px;
  padding: 20px;
  width: min(100%, 340px);
}

.quote-export-dialog h2 {
  color: var(--sav-light-heading);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.2;
}

.quote-export-dialog p {
  color: var(--sav-light-muted);
  font-size: 13px;
}

.quote-export-dialog div {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.quote-export-dialog button {
  border: 1px solid var(--sav-light-border);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  min-height: 34px;
  padding-inline: 14px;
}

.quote-export-dialog button[data-export="pdf"],
.quote-export-dialog button[data-export="excel"] {
  background: var(--sav-accent);
  border-color: transparent;
  color: #ffffff;
}

#root > div.dark ~ .quote-export-backdrop .quote-export-dialog,
#root > div.dark .quote-export-dialog {
  background: var(--sav-dark-surface);
  border-color: var(--sav-dark-border);
  color: var(--sav-dark-text);
}

.sav-email-draft-toast {
  background: #111827;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  bottom: 24px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.22);
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  max-width: min(420px, calc(100vw - 32px));
  padding: 13px 16px;
  position: fixed;
  right: 24px;
  z-index: 320;
}

.sav-quote-duplicate-backdrop {
  align-items: center;
  background: rgba(15, 23, 42, 0.36);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 260;
}

.sav-quote-duplicate-dialog {
  background: #ffffff;
  border: 1px solid var(--sav-light-border);
  border-radius: 18px;
  box-shadow: 0 24px 54px rgba(15, 23, 42, 0.24);
  color: var(--sav-light-text);
  display: grid;
  gap: 18px;
  max-height: min(760px, calc(100vh - 40px));
  max-width: 640px;
  overflow: auto;
  padding: 26px;
  width: min(100%, 640px);
}

.sav-quote-duplicate-header {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.sav-quote-duplicate-header span {
  color: var(--sav-light-muted);
  display: block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.sav-quote-duplicate-header strong {
  color: var(--sav-light-heading);
  display: block;
  font-size: 18px;
  line-height: 1.25;
  margin-top: 4px;
}

.sav-quote-duplicate-header small {
  color: var(--sav-light-muted);
  display: block;
  font-size: 13px;
  line-height: 1.4;
  margin-top: 5px;
}

.sav-quote-duplicate-close {
  align-items: center;
  border: 1px solid var(--sav-light-border);
  border-radius: 999px;
  color: var(--sav-light-muted);
  display: inline-flex;
  height: 30px;
  justify-content: center;
  width: 30px;
}

.sav-quote-duplicate-dialog label {
  display: grid;
  gap: 7px;
}

.sav-quote-duplicate-dialog label span {
  color: var(--sav-light-heading);
  font-size: 12px;
  font-weight: 800;
}

.sav-quote-duplicate-dialog select,
.sav-quote-duplicate-dialog input {
  background: #ffffff;
  border: 1px solid var(--sav-light-border);
  border-radius: 10px;
  color: var(--sav-light-text);
  font: inherit;
  min-height: 44px;
  padding: 0 12px;
  width: 100%;
}

.sav-quote-duplicate-dialog select:focus,
.sav-quote-duplicate-dialog input:focus {
  border-color: var(--sav-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent) 14%, transparent);
  outline: none;
}

.sav-quote-duplicate-fields {
  display: grid;
  gap: 15px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sav-quote-duplicate-field-wide {
  grid-column: 1 / -1;
}

.sav-quote-duplicate-source,
.sav-quote-duplicate-reference {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  display: grid;
  gap: 3px;
  padding: 13px 15px;
}

.sav-quote-duplicate-source span,
.sav-quote-duplicate-reference span {
  color: var(--sav-light-muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.sav-quote-duplicate-source strong,
.sav-quote-duplicate-reference strong {
  color: var(--sav-light-heading);
  font-size: 15px;
  line-height: 1.3;
}

.sav-quote-duplicate-source small,
.sav-quote-duplicate-reference small {
  color: var(--sav-light-muted);
  font-size: 12px;
  line-height: 1.35;
}

.sav-quote-duplicate-reference {
  background: color-mix(in srgb, var(--sav-accent) 6%, #ffffff);
  border-color: color-mix(in srgb, var(--sav-accent) 24%, #e2e8f0);
}

.sav-quote-duplicate-help {
  color: var(--sav-light-muted);
  font-size: 13px;
  line-height: 1.45;
  margin: 0;
}

.sav-quote-duplicate-error {
  color: #dc2626;
  font-size: 13px;
  min-height: 18px;
}

.sav-quote-duplicate-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.sav-quote-duplicate-actions button {
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  min-height: 36px;
  padding: 0 16px;
}

.sav-quote-duplicate-secondary {
  border: 1px solid var(--sav-light-border);
  color: var(--sav-light-text);
}

.sav-quote-duplicate-primary {
  background: var(--sav-accent);
  color: #ffffff;
}

.sav-quote-duplicate-primary:disabled {
  cursor: not-allowed;
  opacity: 0.68;
}

#root > div.dark ~ .sav-quote-duplicate-backdrop .sav-quote-duplicate-dialog,
#root > div.dark .sav-quote-duplicate-dialog {
  background: var(--sav-dark-surface);
  border-color: var(--sav-dark-border);
  color: var(--sav-dark-text);
}

#root > div.dark ~ .sav-quote-duplicate-backdrop .sav-quote-duplicate-header strong,
#root > div.dark .sav-quote-duplicate-header strong,
#root > div.dark ~ .sav-quote-duplicate-backdrop .sav-quote-duplicate-dialog label span,
#root > div.dark .sav-quote-duplicate-dialog label span {
  color: var(--sav-dark-heading);
}

#root > div.dark ~ .sav-quote-duplicate-backdrop .sav-quote-duplicate-dialog select,
#root > div.dark .sav-quote-duplicate-dialog select,
#root > div.dark ~ .sav-quote-duplicate-backdrop .sav-quote-duplicate-dialog input,
#root > div.dark .sav-quote-duplicate-dialog input {
  background: #202124;
  border-color: var(--sav-dark-border);
  color: var(--sav-dark-text);
}

@media (max-width: 680px) {
  .sav-quote-duplicate-backdrop {
    align-items: flex-end;
    padding: 12px;
  }

  .sav-quote-duplicate-dialog {
    border-radius: 16px;
    max-height: calc(100vh - 24px);
    padding: 20px;
  }

  .sav-quote-duplicate-fields {
    grid-template-columns: 1fr;
  }

  .sav-quote-duplicate-field-wide {
    grid-column: auto;
  }
}

.sav-quote-delete-backdrop {
  align-items: center;
  background: rgba(15, 23, 42, 0.38);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 270;
}

.sav-quote-delete-dialog {
  background: #ffffff;
  border: 1px solid var(--sav-light-border);
  border-radius: 8px;
  box-shadow: 0 24px 54px rgba(15, 23, 42, 0.24);
  color: var(--sav-light-text);
  display: grid;
  gap: 16px;
  max-width: 440px;
  padding: 22px;
  width: min(100%, 440px);
}

.sav-quote-delete-header {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.sav-quote-delete-header span {
  color: #dc2626;
  display: block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.sav-quote-delete-header strong {
  color: var(--sav-light-heading);
  display: block;
  font-size: 18px;
  line-height: 1.25;
  margin-top: 4px;
}

.sav-quote-delete-close {
  align-items: center;
  border: 1px solid var(--sav-light-border);
  border-radius: 999px;
  color: var(--sav-light-muted);
  display: inline-flex;
  height: 30px;
  justify-content: center;
  width: 30px;
}

.sav-quote-delete-help {
  color: var(--sav-light-muted);
  font-size: 13px;
  line-height: 1.45;
}

.sav-quote-delete-error {
  color: #dc2626;
  font-size: 13px;
  min-height: 18px;
}

.sav-quote-delete-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.sav-quote-delete-actions button {
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  min-height: 36px;
  padding: 0 16px;
}

.sav-quote-delete-secondary {
  border: 1px solid var(--sav-light-border);
  color: var(--sav-light-text);
}

.sav-quote-delete-primary {
  background: #dc2626;
  color: #ffffff;
}

.sav-quote-delete-primary:disabled {
  cursor: wait;
  opacity: 0.68;
}

#root > div.dark ~ .sav-quote-delete-backdrop .sav-quote-delete-dialog,
#root > div.dark .sav-quote-delete-dialog {
  background: var(--sav-dark-surface);
  border-color: var(--sav-dark-border);
  color: var(--sav-dark-text);
}

#root > div.dark ~ .sav-quote-delete-backdrop .sav-quote-delete-header strong,
#root > div.dark .sav-quote-delete-header strong {
  color: var(--sav-dark-heading);
}

.quote-editor-shell {
  background: #eef1f5 !important;
}

.sav-project-address-confirm-backdrop {
  align-items: center;
  backdrop-filter: blur(3px);
  background: rgba(15, 23, 42, 0.42);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 2147483000;
}

.sav-project-address-confirm-dialog {
  background: #ffffff;
  border: 1px solid rgba(203, 213, 225, 0.92);
  border-radius: 20px;
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.28);
  color: #111827;
  display: grid;
  gap: 24px;
  max-width: 510px;
  padding: 30px;
  width: min(100%, 510px);
}

.sav-project-address-confirm-dialog p {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.55;
  margin: 0;
  text-align: center;
}

.sav-project-address-confirm-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.sav-project-address-confirm-actions button {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-size: 14px;
  font-weight: 700;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
}

.sav-project-address-confirm-no {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #334155;
}

.sav-project-address-confirm-yes {
  background: var(--sav-primary, #e30613);
  border: 1px solid transparent;
  color: #ffffff;
}

.sav-project-address-confirm-actions button:hover {
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.14);
  transform: translateY(-1px);
}

.sav-project-address-confirm-actions button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--sav-primary, #e30613) 28%, transparent);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  .sav-project-address-confirm-dialog {
    border-radius: 16px;
    padding: 24px 20px;
  }

  .sav-project-address-confirm-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .sav-project-address-confirm-actions button {
    width: 100%;
  }
}

.sav-quote-preview-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.42) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 24px !important;
  position: fixed !important;
  z-index: 360 !important;
}

.sav-quote-preview-shell {
  background: #eef1f5 !important;
  border: 1px solid rgba(148, 163, 184, 0.42) !important;
  border-radius: 18px !important;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.34) !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  height: min(92vh, 980px) !important;
  inset: auto !important;
  max-width: calc(100vw - 48px) !important;
  overflow: hidden !important;
  position: relative !important;
  width: min(980px, calc(100vw - 48px)) !important;
}

.sav-quote-preview-shell .quote-editor-toolbar {
  background: #ffffff !important;
  border-bottom: 1px solid var(--sav-light-border) !important;
  color: var(--sav-light-heading) !important;
  flex: 0 0 auto !important;
  min-height: 58px !important;
  padding: 12px 18px !important;
}

.sav-quote-preview-shell .quote-editor-toolbar > div:first-child {
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
}

.sav-quote-preview-shell .quote-editor-toolbar strong,
.sav-quote-preview-shell .quote-editor-toolbar span {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-quote-preview-shell .quote-editor-toolbar button[aria-label] {
  align-items: center !important;
  background: #f8fafc !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 999px !important;
  color: var(--sav-light-heading) !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  font-size: 20px !important;
  height: 36px !important;
  justify-content: center !important;
  margin-left: auto !important;
  width: 36px !important;
}

.sav-quote-preview-shell .quote-editor-toolbar button[aria-label]:hover {
  background: color-mix(in srgb, var(--sav-accent) 7%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--sav-accent) 28%, transparent) !important;
  color: var(--sav-accent) !important;
}

.sav-quote-preview-shell .quote-editor-toolbar .sav-quote-preview-toolbar-actions {
  align-items: center !important;
  display: flex !important;
  flex: 0 0 auto !important;
  gap: 8px !important;
  margin-left: auto !important;
}

.sav-quote-preview-shell .quote-editor-toolbar button.sav-quote-preview-print-button {
  background: var(--sav-accent) !important;
  border-color: var(--sav-accent) !important;
  border-radius: 9px !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  gap: 7px !important;
  margin-left: 0 !important;
  min-width: 108px !important;
  padding: 0 14px !important;
  width: auto !important;
}

.sav-quote-preview-shell .quote-editor-toolbar button.sav-quote-preview-print-button:hover {
  background: var(--sav-accent-hover) !important;
  border-color: var(--sav-accent-hover) !important;
  color: #ffffff !important;
}

.sav-quote-preview-shell .quote-editor-toolbar button.sav-quote-preview-print-button:disabled {
  cursor: wait !important;
  color: #ffffff !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #ffffff !important;
}

.sav-quote-preview-shell .quote-editor-toolbar button.sav-quote-preview-print-button,
.sav-quote-preview-shell .quote-editor-toolbar button.sav-quote-preview-print-button > span,
.sav-quote-preview-shell .quote-editor-toolbar button.sav-quote-preview-print-button > svg {
  color: #ffffff !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #ffffff !important;
}

.sav-quote-preview-print-button svg {
  fill: none !important;
  height: 16px !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.8 !important;
  width: 16px !important;
}

.sav-quote-preview-shell .quote-editor-toolbar .sav-quote-preview-close-button {
  margin-left: 0 !important;
}

.sav-quote-preview-shell .quote-editor-canvas {
  align-items: flex-start !important;
  background: #e8edf4 !important;
  display: flex !important;
  justify-content: center !important;
  overflow: auto !important;
  padding: 24px !important;
}

.sav-quote-preview-shell .sav-quote-client-preview-canvas {
  display: block !important;
  overflow: hidden !important;
  padding: 0 !important;
}

.sav-quote-client-preview-frame {
  background: #eef2f6 !important;
  border: 0 !important;
  display: block !important;
  height: 100% !important;
  min-height: 0 !important;
  width: 100% !important;
}

.sav-quote-preview-shell .quote-document-page {
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18) !important;
  flex: 0 0 auto !important;
  margin: 0 auto !important;
  pointer-events: none !important;
}

.sav-quote-preview-shell .sav-doc-block,
.sav-quote-preview-shell .sav-doc-block.is-selected,
.sav-quote-preview-shell .sav-doc-block:hover,
.sav-quote-preview-shell .sav-doc-block:focus,
.sav-quote-preview-shell .sav-doc-block:focus-within,
.sav-quote-preview-shell .sav-block-content,
.sav-quote-preview-shell .sav-block-content:focus,
.sav-quote-preview-shell [contenteditable="true"] {
  caret-color: transparent !important;
  outline: 0 !important;
  outline-offset: 0 !important;
}

.sav-quote-preview-shell .sav-doc-block {
  cursor: default !important;
  user-select: text !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-doc-block,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-doc-block:hover,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-doc-block:focus,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-doc-block:focus-within,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-block-content,
.sav-quote-preview-shell.sav-quote-preview-readonly [contenteditable] {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  caret-color: transparent !important;
  cursor: default !important;
  outline: 0 !important;
  pointer-events: none !important;
}

.sav-quote-preview-shell .sav-quote-save-controls,
.sav-quote-preview-shell .sav-edit-only,
.sav-quote-preview-shell .sav-internal,
.sav-quote-preview-shell .sav-block-grip,
.sav-quote-preview-shell [hidden] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.sav-quote-editor-toolbar {
  align-items: center !important;
  display: flex !important;
  box-sizing: border-box !important;
  gap: 14px !important;
  min-width: 0 !important;
  overflow: visible !important;
  position: relative !important;
  width: 100% !important;
  /* Keep every toolbar popover above the fixed supplier-offer panel
     (2147482100) while remaining below real modal overlays (2147483000+). */
  z-index: 2147482200 !important;
}

.sav-quote-editor-shell .quote-editor-toolbar > div:first-child {
  flex: 1 1 190px !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.sav-quote-editor-shell .quote-editor-toolbar > div:first-child strong,
.sav-quote-editor-shell .quote-editor-toolbar > div:first-child span {
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-quote-editor-shell .quote-editor-toolbar > button[aria-label] {
  flex: 0 0 auto !important;
  margin-left: 0 !important;
}

.sav-quote-save-controls {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
  margin-left: auto;
  margin-right: 12px;
  max-width: min(600px, 56vw);
  min-width: 0;
}

.sav-quote-export-actions {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  display: inline-flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 0;
  padding: 0;
}

.sav-quote-toolbar-button {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--sav-light-border);
  border-radius: 8px;
  color: var(--sav-light-heading);
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  min-height: 34px;
  min-width: 74px;
  padding: 0 12px;
  white-space: nowrap;
  width: 74px;
  transition:
    background 0.16s ease,
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    color 0.16s ease,
    transform 0.16s ease;
}

.sav-quote-toolbar-button:hover,
.sav-quote-language-button:hover {
  background: #f8fafc;
  border-color: var(--sav-light-border);
  color: var(--sav-accent);
  box-shadow: 0 8px 18px rgba(14, 35, 64, 0.08);
  transform: translateY(-1px);
}

.sav-quote-toolbar-button:focus-visible,
.sav-quote-language-button:focus-visible {
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px var(--sav-accent-shadow-soft) !important;
  outline: 0 !important;
}

.sav-quote-export-actions .sav-quote-toolbar-button.sav-quote-icon-button {
  min-width: 74px !important;
  padding: 0 12px !important;
  width: 74px !important;
}

.sav-quote-toolbar-button.sav-quote-translate-button {
  min-width: 34px !important;
  padding: 0 !important;
  width: 34px !important;
}

.sav-quote-language {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  position: relative !important;
  z-index: 2147482300 !important;
}

.sav-quote-language-button {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  color: var(--sav-light-heading) !important;
  cursor: pointer !important;
  display: inline-flex !important;
  gap: 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  height: 34px !important;
  justify-content: center !important;
  min-height: 34px !important;
  min-width: 74px !important;
  padding: 0 12px !important;
  transition:
    background 0.16s ease,
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    color 0.16s ease,
    transform 0.16s ease !important;
  white-space: nowrap !important;
  width: 74px !important;
}

.sav-quote-language-button::after {
  border-bottom: 0 !important;
  border-left: 4px solid transparent !important;
  border-right: 4px solid transparent !important;
  border-top: 5px solid currentColor !important;
  content: "" !important;
  display: block !important;
  height: 0 !important;
  margin-top: 1px !important;
  opacity: 0.62 !important;
  transform: none !important;
  transition: transform 0.16s ease !important;
  width: 0 !important;
}

.sav-quote-language[data-expanded="true"] .sav-quote-language-button {
  background: #f8fafd !important;
  border-color: #aeb4bb !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.12) !important;
  color: #202124 !important;
  transform: none !important;
}

.sav-quote-language[data-expanded="true"] .sav-quote-language-button::after {
  transform: rotate(180deg) !important;
}

.sav-quote-language-menu {
  background: #ffffff !important;
  border: 1px solid #dadce0 !important;
  border-radius: 12px !important;
  box-shadow:
    0 8px 24px rgba(60, 64, 67, 0.18),
    0 1px 2px rgba(60, 64, 67, 0.12) !important;
  display: none !important;
  gap: 5px !important;
  min-width: 206px !important;
  padding: 8px !important;
  position: absolute !important;
  right: 0 !important;
  top: calc(100% + 8px) !important;
  transform: none !important;
  z-index: 2147482400 !important;
}

.sav-quote-language-menu::before {
  background: #ffffff !important;
  border-left: 1px solid #dadce0 !important;
  border-top: 1px solid #dadce0 !important;
  content: "" !important;
  height: 9px !important;
  position: absolute !important;
  right: 25px !important;
  top: -5px !important;
  transform: rotate(45deg) !important;
  width: 9px !important;
}

.sav-quote-language-menu-title {
  color: #5f6368 !important;
  display: block !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 16px !important;
  padding: 4px 8px 6px !important;
  text-transform: none !important;
}

.sav-quote-language[data-expanded="true"] .sav-quote-language-menu {
  display: grid !important;
}

.sav-quote-language-primary,
.sav-quote-language-extra {
  display: grid !important;
  gap: 2px !important;
  width: 100% !important;
}

.sav-quote-language-menu button {
  align-items: center !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  color: #202124 !important;
  cursor: pointer !important;
  display: grid !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  gap: 10px !important;
  grid-template-columns: 34px minmax(0, 1fr) 16px !important;
  height: 40px !important;
  justify-content: stretch !important;
  min-height: 40px !important;
  min-width: 0 !important;
  padding: 5px 8px !important;
  position: relative !important;
  text-align: left !important;
  transition: background 0.14s ease, border-color 0.14s ease, color 0.14s ease !important;
  width: 100% !important;
}

.sav-quote-language-menu button:hover,
.sav-quote-language-menu button:focus-visible {
  background: #f1f3f4 !important;
  border-color: transparent !important;
  color: #202124 !important;
  outline: 0 !important;
}

.sav-quote-language-menu button.is-active,
.sav-quote-language-menu button[aria-current="true"] {
  background: color-mix(in srgb, var(--sav-accent) 7%, #ffffff) !important;
  border-color: transparent !important;
  color: var(--sav-accent-hover) !important;
}

.sav-quote-language-menu button.is-active::after,
.sav-quote-language-menu button[aria-current="true"]::after {
  color: var(--sav-accent) !important;
  content: "\2713" !important;
  display: block !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  justify-self: center !important;
  line-height: 1 !important;
}

.sav-quote-language-menu button span:first-child,
.sav-quote-language-code {
  align-items: center !important;
  background: #f8fafd !important;
  border: 1px solid #dadce0 !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  height: 24px !important;
  justify-content: center !important;
  text-align: center !important;
  width: 32px !important;
}

.sav-quote-language-menu button.is-active .sav-quote-language-code,
.sav-quote-language-menu button[aria-current="true"] .sav-quote-language-code {
  background: #ffffff !important;
  border-color: color-mix(in srgb, var(--sav-accent) 42%, transparent) !important;
  color: var(--sav-accent) !important;
}

.sav-quote-language-menu button span:last-child,
.sav-quote-language-name {
  color: inherit !important;
  display: block !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-quote-language-more {
  display: flex !important;
  grid-template-columns: none !important;
  justify-content: center !important;
}

.sav-quote-save-button {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--sav-light-border);
  border-radius: 8px;
  color: var(--sav-light-heading);
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  gap: 7px;
  min-height: 34px;
  padding: 0 14px;
  white-space: nowrap;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.sav-quote-save-button::before {
  background: #94a3b8;
  border-radius: 999px;
  content: "";
  height: 8px;
  width: 8px;
}

.sav-quote-save-button:hover {
  border-color: color-mix(in srgb, var(--sav-accent) 34%, var(--sav-light-border));
  transform: translateY(-1px);
}

.sav-quote-save-button[data-save-state="pending"] {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}

.sav-quote-save-button[data-save-state="pending"]::before {
  background: #f97316;
}

.sav-quote-save-button[data-save-state="saving"] {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
  cursor: progress;
}

.sav-quote-save-button[data-save-state="saving"]::before {
  animation: sav-save-pulse 0.85s ease-in-out infinite;
  background: #2563eb;
}

.sav-quote-save-button[data-save-state="saved"] {
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #166534;
}

.sav-quote-save-button[data-save-state="saved"]::before {
  background: #16a34a;
}

.sav-quote-save-status {
  color: var(--sav-light-muted);
  flex: 1 0 100%;
  font-size: 11px;
  min-width: 0;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes sav-save-pulse {
  0%,
  100% {
    opacity: 0.35;
    transform: scale(0.82);
  }

  50% {
    opacity: 1;
    transform: scale(1.15);
  }
}

.quote-editor-canvas {
  background: #eef1f5 !important;
  justify-content: center !important;
  padding: 42px 24px !important;
}

.quote-document-page.sav-quote-document-host {
  --sav-page-visual-gap: 36px;
  background: #ffffff !important;
  color: #202124 !important;
  min-height: var(--sav-page-render-height, var(--sav-page-height, 1123px)) !important;
  overflow: visible !important;
  position: relative !important;
  width: var(--sav-page-width, 794px) !important;
}

.sav-doc-page-inner {
  background: #ffffff !important;
  min-height: var(--sav-page-render-height, var(--sav-page-height, 1123px));
  position: relative;
  width: 100%;
}

.sav-doc-loading,
.sav-doc-error {
  align-items: center;
  color: #64748b;
  display: flex;
  font-size: 13px;
  justify-content: center;
  min-height: 280px;
}

.sav-doc-error {
  color: #b91c1c;
}

.sav-doc-block {
  box-sizing: border-box;
  position: absolute;
  white-space: normal;
}

.sav-doc-block.is-selected {
  outline: 1px solid color-mix(in srgb, var(--sav-accent) 78%, white);
  outline-offset: 2px;
}

.sav-doc-block.is-selected::after,
.sav-doc-block:hover::after {
  content: none !important;
  display: none !important;
}

.sav-block-content {
  height: 100%;
  min-height: inherit;
  outline: none;
  overflow-wrap: anywhere;
  padding: 2px;
  white-space: pre-wrap;
  width: 100%;
}

.sav-image-block {
  align-items: center;
  display: flex;
  justify-content: center;
}

.sav-image-block img {
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  width: 100%;
}

.sav-shape-block {
  min-height: 1px !important;
}

.sav-doc-footer {
  align-items: center;
  color: #666666;
  display: grid;
  font-size: 9px;
  gap: 1px;
  grid-template-columns: 1fr 52px;
  left: 48px;
  line-height: 1.28;
  position: absolute;
  text-align: center;
  width: 698px;
  z-index: 1;
}

.sav-doc-footer span {
  grid-column: 1 / 2;
}

.sav-doc-footer strong:last-child {
  align-self: center;
  color: #666666;
  font-size: 10px;
  font-weight: 400;
  grid-column: 2 / 3;
  grid-row: 1 / 4;
  justify-self: end;
}

.sav-page-break-guide {
  border-top: 1px dashed #cbd5e1;
  left: 0;
  opacity: 0.7;
  position: absolute;
  width: 100%;
  z-index: 0;
}

.sav-page-surface {
  background: #ffffff;
  border: 1px solid #d8dee8;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.10);
  left: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 0;
}

.sav-page-break-gap {
  display: none !important;
}

.sav-page-flow-break {
  margin-top: var(--sav-page-flow-margin, 0px) !important;
}

.sav-alignment-guide {
  background: rgba(26, 115, 232, 0.72);
  box-shadow: 0 0 0 1px rgba(26, 115, 232, 0.16);
  pointer-events: none;
  position: absolute;
  z-index: 120;
}

.sav-alignment-guide-vertical {
  bottom: 0;
  top: 0;
  width: 1px;
}

.sav-alignment-guide-horizontal {
  height: 1px;
  left: 0;
  right: 0;
}

.sav-block-grip {
  background: var(--sav-accent);
  border: 2px solid #ffffff;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
  cursor: move;
  height: 14px;
  left: -8px;
  opacity: 0;
  position: absolute;
  top: -8px;
  transition: opacity 0.14s ease;
  width: 14px;
  z-index: 5;
}

.sav-doc-block:hover .sav-block-grip,
.sav-doc-block.is-selected .sav-block-grip {
  opacity: 1;
}

.sav-editor-tools {
  background: #ffffff;
  border: 1px solid var(--sav-light-border);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16);
  color: var(--sav-light-text);
  display: grid;
  gap: 9px;
  max-height: calc(100vh - 98px);
  overflow: auto;
  padding: 14px;
  position: fixed;
  right: 20px;
  top: 74px;
  width: 244px;
  z-index: 95;
}

.sav-editor-tools strong {
  color: var(--sav-light-heading);
  font-size: 13px;
  font-weight: 700;
}

.sav-editor-tools span,
.sav-editor-tools label {
  color: var(--sav-light-muted);
  display: grid;
  font-size: 11px;
  gap: 5px;
}

.sav-editor-tools input,
.sav-editor-tools select {
  border: 1px solid var(--sav-light-border);
  border-radius: 6px;
  color: var(--sav-light-heading);
  min-height: 30px;
  padding: 4px 7px;
}

.sav-editor-tools input[type="color"] {
  padding: 2px;
}

.sav-editor-tools button,
.sav-service-actions button,
.sav-row-actions button {
  border: 1px solid var(--sav-light-border);
  border-radius: 7px;
  color: var(--sav-light-heading);
  font-size: 11px;
  font-weight: 700;
  min-height: 30px;
  padding: 5px 8px;
}

.sav-editor-tools button:hover,
.sav-service-actions button:hover,
.sav-row-actions button:hover {
  background: #f8fafc;
}

.sav-tool-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.sav-tool-row-compact {
  align-items: end;
  display: grid;
  grid-template-columns: 34px 1fr 34px;
}

.sav-tool-row-compact label {
  gap: 4px;
}

.sav-block-library {
  display: grid;
  gap: 7px;
  grid-template-columns: 1fr 1fr;
}

.sav-editor-tools hr {
  border: 0;
  border-top: 1px solid var(--sav-light-border);
  margin: 2px 0;
}

.sav-services-block {
  background: #ffffff;
}

.sav-quote-editor-toolbar {
  flex-wrap: nowrap !important;
  overflow: visible !important;
}

.sav-quote-editor-shell .quote-editor-toolbar > div:first-child {
  flex: 0 1 300px !important;
  max-width: 320px !important;
}

.sav-quote-save-controls {
  align-items: center !important;
  display: flex !important;
  flex-direction: row !important;
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  margin-right: 14px !important;
  max-width: none !important;
  min-width: max-content !important;
  overflow: visible !important;
  position: relative !important;
  width: auto !important;
}

.sav-quote-export-actions {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  width: auto !important;
}

.sav-quote-editor-shell .sav-quote-toolbar-button,
.sav-quote-editor-shell .sav-quote-language-button,
.sav-quote-editor-shell .sav-quote-save-button {
  background: #ffffff !important;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  color: var(--sav-light-heading) !important;
  flex: 0 0 auto !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  height: 34px !important;
  line-height: 1 !important;
  min-width: 74px !important;
  transition:
    background 0.16s ease,
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    color 0.16s ease,
    transform 0.16s ease !important;
  width: 74px !important;
}

.sav-quote-editor-shell .sav-quote-toolbar-button:hover,
.sav-quote-editor-shell .sav-quote-language-button:hover,
.sav-quote-editor-shell .sav-quote-save-button:hover {
  background: #f8fafc !important;
  border-color: var(--sav-light-border) !important;
  box-shadow: 0 8px 18px rgba(14, 35, 64, 0.08) !important;
  color: var(--sav-accent) !important;
  transform: translateY(-1px) !important;
}

.sav-quote-editor-shell .sav-quote-toolbar-button:focus-visible,
.sav-quote-editor-shell .sav-quote-language-button:focus-visible,
.sav-quote-editor-shell .sav-quote-save-button:focus-visible {
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px var(--sav-accent-shadow-soft) !important;
  outline: 0 !important;
}

.sav-quote-editor-shell .sav-quote-translate-button {
  min-width: 34px !important;
  width: 34px !important;
}

.sav-quote-editor-shell .sav-quote-translate-button:disabled,
.sav-quote-editor-shell .sav-quote-language-button:disabled {
  cursor: wait !important;
  opacity: 0.68 !important;
  transform: none !important;
}

.sav-quote-editor-shell .sav-quote-translate-button[data-busy="true"] .sav-translate-icon {
  animation: sav-quote-translate-pulse 0.9s ease-in-out infinite alternate;
}

.sav-quote-translation-feedback {
  align-items: center;
  background: #ffffff;
  border: 1px solid #d7dee8;
  border-radius: 9px;
  box-shadow: 0 12px 32px rgba(14, 35, 64, 0.15);
  color: #334155;
  display: flex;
  font-size: 12px;
  font-weight: 600;
  gap: 8px;
  max-width: min(410px, calc(100vw - 32px));
  min-height: 38px;
  padding: 8px 12px;
  position: absolute;
  right: 0;
  top: calc(100% + 9px);
  width: max-content;
  z-index: 2147482500;
}

.sav-quote-translation-feedback[hidden] {
  display: none !important;
}

.sav-quote-translation-feedback::before {
  background: #1a73e8;
  border-radius: 50%;
  content: "";
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.sav-quote-translation-feedback[data-state="success"]::before {
  background: #188038;
}

.sav-quote-translation-feedback[data-state="warning"]::before {
  background: #f9ab00;
}

.sav-quote-translation-feedback[data-state="error"] {
  border-color: #f1b8b5;
  color: #b3261e;
}

.sav-quote-translation-feedback[data-state="error"]::before {
  background: #d93025;
}

.sav-quote-translation-feedback[data-state="loading"]::before {
  animation: sav-quote-translation-dot 0.75s ease-in-out infinite alternate;
}

@keyframes sav-quote-translate-pulse {
  from {
    opacity: 0.48;
    transform: scale(0.92);
  }
  to {
    opacity: 1;
    transform: scale(1.05);
  }
}

@keyframes sav-quote-translation-dot {
  from {
    opacity: 0.35;
  }
  to {
    opacity: 1;
  }
}

.sav-quote-editor-shell .sav-quote-save-button {
  min-width: 118px !important;
  width: 118px !important;
}

.sav-quote-save-status {
  display: none !important;
}

.sav-quote-editor-shell .quote-editor-toolbar > button[aria-label],
.sav-quote-preview-shell .quote-editor-toolbar button[aria-label] {
  border-radius: 8px !important;
}

.sav-global-summary {
  display: grid;
  gap: 8px;
  margin-top: 22px;
}

.sav-global-summary > strong {
  color: #202124;
  font-size: 12px;
  font-weight: 800;
}

.sav-global-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 128px;
}

.sav-global-summary-grid > * {
  border-bottom: 1px solid #cbd5e1;
  color: #475569;
  font-size: 10px;
  padding: 5px 0;
}

.sav-global-summary-grid > strong,
.sav-global-summary-grid > span:nth-child(2n) {
  text-align: right;
}

.sav-summary-level-2 {
  padding-left: 14px !important;
}

.sav-summary-level-3 {
  padding-left: 28px !important;
}

.sav-global-summary-totals {
  display: grid;
  gap: 5px;
  justify-content: end;
  margin-left: auto;
  width: 220px;
}

.sav-global-summary-totals span,
.sav-payment-total {
  color: #475569;
  display: flex;
  font-size: 10px;
  justify-content: space-between;
}

.sav-payment-total.is-over {
  color: var(--sav-accent);
  font-weight: 800;
}

@media (max-width: 920px) {
  .sav-quote-save-controls {
    max-width: none;
  }

  .sav-quote-save-status {
    display: none !important;
  }

  .sav-quote-toolbar-button {
    padding-inline: 9px;
  }
}


@media (max-width: 760px) {
  .sav-ai-import-shell {
    grid-template-columns: 1fr;
  }
}

@container (min-width: 921px) {
  .purchase-panel .purchase-grid-header,
  .purchase-panel .purchase-project-header,
  .purchase-panel .purchase-grid-row,
  .purchase-panel .purchase-row-details {
    width: 100% !important;
  }

  .purchase-panel .purchase-grid-header > span:nth-child(n + 4) {
    justify-content: flex-end !important;
    text-align: right !important;
  }

  .purchase-panel .purchase-project-header {
    align-items: center !important;
    background-color: #f5f6f8 !important;
    grid-template-columns: var(--purchase-grid-columns) !important;
    min-height: 48px !important;
    overflow: visible !important;
    padding: 5px clamp(7px, 0.78cqw, 10px) !important;
  }

  .purchase-panel .project-title-group {
    grid-column: 2 / 4 !important;
    justify-self: stretch !important;
  }

  .purchase-panel .project-subtotals {
    align-items: center !important;
    display: grid !important;
    column-gap: clamp(3px, 0.34cqw, 5px) !important;
    grid-column: 4 / 10 !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    overflow: visible !important;
  }

  .purchase-panel .project-metric {
    align-content: center !important;
    align-items: end !important;
    display: grid !important;
    font-size: clamp(9.25px, 0.78cqw, 11px) !important;
    grid-template-rows: auto auto !important;
    justify-content: flex-end !important;
    line-height: 1.05 !important;
    min-width: 0 !important;
    overflow: visible !important;
    row-gap: 1px !important;
    text-align: right !important;
    white-space: normal !important;
  }

  .purchase-panel .project-metric > span,
  .purchase-panel .project-metric > strong {
    min-width: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }

  .purchase-panel .project-metric > span {
    font-size: clamp(8px, 0.7cqw, 9.5px) !important;
    line-height: 1 !important;
  }

  .purchase-panel .project-metric > strong {
    font-size: clamp(9.6px, 0.84cqw, 11.75px) !important;
    line-height: 1.05 !important;
  }

  .purchase-panel .project-metric-quote {
    grid-column: 1 !important;
  }

  .purchase-panel .project-metric-invoice {
    grid-column: 2 !important;
  }

  .purchase-panel .project-metric-discount {
    grid-column: 3 !important;
  }

  .purchase-panel .project-metric-receive {
    grid-column: 5 !important;
  }

  .purchase-panel .project-metric-pay {
    grid-column: 6 !important;
  }

  .purchase-panel .project-add-invoice {
    align-items: center !important;
    align-self: center !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    grid-column: 11 / 13 !important;
    height: 26px !important;
    justify-content: center !important;
    justify-self: end !important;
    line-height: 1 !important;
    padding-block: 0 !important;
  }

  .purchase-panel:not(.sav-client-invoice-panel) .purchase-grid-row > .purchase-total {
    grid-column: 10 !important;
  }

  .purchase-panel:not(.sav-client-invoice-panel) .purchase-grid-row > .purchase-rests {
    grid-column: 11 !important;
  }

  .purchase-panel:not(.sav-client-invoice-panel) .purchase-grid-row > .row-expand {
    grid-column: 12 !important;
  }

  .purchase-panel .purchase-grid-row {
    background-color: #ffffff !important;
    min-height: 34px !important;
    padding: 3px clamp(7px, 0.78cqw, 10px) !important;
  }

  .purchase-panel .purchase-grid-row > :nth-child(n + 4) {
    text-align: right !important;
  }

  .purchase-panel .supplier-input,
  .purchase-panel .ht-input {
    height: 23px !important;
  }

  .purchase-panel .invoice-summary {
    align-items: stretch !important;
    grid-template-columns: minmax(0, 1fr) clamp(17px, 1.55cqw, 20px) !important;
    justify-self: stretch !important;
    min-height: 23px !important;
    padding-left: clamp(2px, 0.28cqw, 3px) !important;
  }

  .purchase-panel .invoice-summary .invoice-amount-cell {
    padding-right: 2px !important;
    text-align: right !important;
  }

  .purchase-panel .invoice-summary .pdf-icon,
  .purchase-panel .ht-cell .pdf-icon {
    align-items: center !important;
    display: flex !important;
  }

  .purchase-panel .invoice-summary .pdf-icon {
    justify-content: flex-end !important;
    padding-right: 1px !important;
  }

  .purchase-panel .ht-cell .pdf-icon {
    justify-content: center !important;
  }

  .purchase-panel .invoice-summary .pdf-icon svg {
    transform: translateX(-2px) !important;
  }

  .purchase-panel .ht-cell .pdf-icon svg {
    transform: none !important;
  }

  .purchase-panel .purchase-total,
  .purchase-panel .purchase-rests {
    justify-self: stretch !important;
    padding-right: 2px !important;
    text-align: right !important;
  }

  .purchase-panel .row-expand {
    justify-self: end !important;
    margin-right: 1px !important;
  }

  .purchase-panel .purchase-row-details {
    align-items: center !important;
    background-color: #ffffff !important;
    column-gap: clamp(9px, 0.86cqw, 14px) !important;
    min-height: 34px !important;
    overflow: visible !important;
    padding: 3px clamp(7px, 0.78cqw, 10px) !important;
  }

  .purchase-panel .purchase-row-details > * {
    align-self: center !important;
    overflow: visible !important;
  }

  .purchase-panel .invoice-detail-cell {
    align-content: center !important;
    gap: 4px !important;
    justify-items: stretch !important;
    min-height: 22px !important;
    overflow: visible !important;
  }

  .purchase-panel .invoice-detail-cell:not(.invoice-detail-cell-percent-only) {
    grid-template-rows: repeat(4, 16px) !important;
    min-height: 66px !important;
  }

  .purchase-panel .invoice-detail-cell-percent-only {
    align-content: start !important;
    grid-template-rows: 18px !important;
    min-height: 66px !important;
  }

  .purchase-panel .purchase-row-details > .invoice-detail-cell-percent-only {
    align-self: start !important;
  }

  .purchase-panel .invoice-detail-cell-percent-only label:nth-of-type(n + 2),
  .purchase-panel .invoice-detail-cell-percent-only .paid-pill {
    display: none !important;
  }

  .purchase-panel .invoice-detail-cell label {
    align-items: center !important;
    display: grid !important;
    gap: 4px !important;
    grid-template-columns: minmax(14px, 0.32fr) minmax(0, 1fr) !important;
    height: 18px !important;
    margin: 0 !important;
    transform: none !important;
  }

  .purchase-panel .invoice-detail-cell label span {
    font-size: 7px !important;
    line-height: 1 !important;
    text-align: right !important;
  }

  .purchase-panel .invoice-detail-cell input {
    font-size: 8px !important;
    height: 18px !important;
    padding-inline: 3px !important;
    text-align: right !important;
  }

  .purchase-panel .paid-pill {
    font-size: 8px !important;
    height: 18px !important;
    justify-self: end !important;
  }
}

@container (min-width: 921px) {
  .sav-client-invoice-panel .purchase-project-header {
    grid-template-columns:
      34px
      minmax(118px, 1.05fr)
      minmax(0, 4.8fr)
      minmax(98px, 0.86fr) !important;
  }

  .sav-client-invoice-panel .project-title-group {
    grid-column: 2 !important;
  }

  .sav-client-invoice-panel .project-subtotals {
    grid-column: 3 !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }

  .sav-client-invoice-panel .project-add-invoice {
    align-items: center !important;
    display: inline-flex !important;
    gap: 6px !important;
    grid-column: 4 !important;
    height: 30px !important;
    justify-content: center !important;
    justify-self: end !important;
    min-width: 88px !important;
    padding-inline: 10px !important;
  }

  .sav-client-invoice-panel .project-add-invoice svg {
    height: 14px !important;
    width: 14px !important;
  }

  .sav-client-invoice-panel .purchase-grid-row {
    min-height: 34px !important;
  }

  .sav-client-invoice-panel .sav-invoice-total-ttc-cell,
  .sav-client-invoice-panel .purchase-total,
  .sav-client-invoice-panel .invoice-summary .invoice-amount-cell {
    font-size: clamp(9.6px, 0.84cqw, 11.75px) !important;
    line-height: 1.05 !important;
  }

  .sav-client-invoice-panel .purchase-rests {
    font-size: clamp(8px, 0.7cqw, 9.5px) !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-detail-cell select {
    font-size: 8px !important;
    height: 18px !important;
    min-height: 18px !important;
    padding: 0 4px !important;
  }
}

/* Previsions: compact table aligned with the Achats grid style. */
.forecast-card {
  --sav-forecast-blue: #1a73e8;
  border: 1px solid var(--sav-light-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 3px rgba(60, 64, 67, 0.12) !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}

.forecast-card > div {
  overflow: visible !important;
}

.forecast-card .responsive-table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
  color: var(--sav-light-text) !important;
  font-size: 12px !important;
  line-height: 1.18 !important;
  min-width: 860px !important;
  table-layout: fixed !important;
  width: 100% !important;
}

.forecast-card .responsive-table th,
.forecast-card .responsive-table td {
  border-bottom: 1px solid var(--sav-light-border-soft) !important;
  box-sizing: border-box !important;
  height: 34px !important;
  min-height: 34px !important;
  overflow: hidden !important;
  padding: 3px 10px !important;
  text-overflow: ellipsis !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}

.forecast-card .responsive-table th:not(:last-child),
.forecast-card .responsive-table td:not(:last-child) {
  border-right: 1px solid var(--sav-light-border-soft) !important;
}

.forecast-card .responsive-table thead th {
  background: #f5f6f8 !important;
  color: #4b5563 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  height: 36px !important;
  letter-spacing: 0 !important;
  line-height: 1.08 !important;
  padding-block: 6px !important;
  text-transform: uppercase !important;
}

.forecast-card .responsive-table tbody tr {
  background: #ffffff !important;
}

.forecast-card .responsive-table tbody tr:hover {
  background: #fafbfc !important;
}

.forecast-card .responsive-table tbody tr:last-child td {
  border-bottom-color: var(--sav-light-border) !important;
}

.forecast-card .responsive-table input.sav-forecast-input {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 5px !important;
  box-shadow: none !important;
  color: var(--sav-light-text) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  height: 23px !important;
  line-height: 1.1 !important;
  padding: 2px 5px !important;
  width: 100% !important;
}

.forecast-card .responsive-table input.sav-forecast-input:focus,
.forecast-card .responsive-table input.sav-forecast-input-focused {
  background: #ffffff !important;
  border-color: var(--sav-forecast-blue) !important;
  box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.14) !important;
  outline: none !important;
}

.forecast-card .responsive-table th:nth-child(1),
.forecast-card .responsive-table td:nth-child(1),
.forecast-card .responsive-table th:nth-child(2),
.forecast-card .responsive-table td:nth-child(2) {
  text-align: left !important;
}

.forecast-card .responsive-table th:nth-child(n + 3),
.forecast-card .responsive-table td:nth-child(n + 3) {
  text-align: right !important;
}

.forecast-card .responsive-table th:last-child,
.forecast-card .responsive-table td:last-child {
  text-align: center !important;
  width: 42px !important;
}

.forecast-card .responsive-table th:nth-child(1),
.forecast-card .responsive-table th:nth-child(2) {
  width: 12.5% !important;
}

.forecast-card .responsive-table th:nth-child(3),
.forecast-card .responsive-table th:nth-child(6) {
  width: 9.5% !important;
}

.forecast-card .responsive-table th:nth-child(4),
.forecast-card .responsive-table th:nth-child(5),
.forecast-card .responsive-table th:nth-child(7),
.forecast-card .responsive-table th:nth-child(8) {
  width: 12% !important;
}

.forecast-card .responsive-table th:nth-child(6),
.forecast-card .responsive-table th:nth-child(7),
.forecast-card .responsive-table .sav-forecast-margin-heading,
.forecast-card .responsive-table tbody td:nth-child(6),
.forecast-card .responsive-table tbody td:nth-child(6) input,
.forecast-card .responsive-table tbody td:nth-child(7),
.forecast-card .responsive-table .sav-forecast-margin-percent-cell,
.forecast-card .responsive-table .sav-forecast-margin-input,
.forecast-card .responsive-table .sav-forecast-margin-amount-cell,
.forecast-card .responsive-table tfoot td:nth-child(5),
.forecast-card .responsive-table tfoot td:nth-child(6),
.forecast-card .responsive-table .sav-forecast-margin-total-cell {
  color: var(--sav-forecast-blue) !important;
}

.forecast-card .responsive-table thead th.sav-forecast-margin-heading,
.forecast-card .responsive-table tbody td.sav-forecast-margin-percent-cell,
.forecast-card .responsive-table tbody td.sav-forecast-margin-amount-cell,
.forecast-card .responsive-table tbody input.sav-forecast-input.sav-forecast-margin-input,
.forecast-card .responsive-table tfoot td.sav-forecast-margin-total-cell {
  color: var(--sav-forecast-blue) !important;
}

.forecast-card .responsive-table tbody td:nth-child(7),
.forecast-card .responsive-table tbody td:nth-child(8) {
  font-weight: 600 !important;
}

.forecast-card .responsive-table tfoot {
  background: #f8fafd !important;
  color: var(--sav-light-text) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

.forecast-card .responsive-table tfoot td {
  height: 40px !important;
  min-height: 40px !important;
  padding: 6px 10px !important;
}

.forecast-card .responsive-table tfoot td:first-child {
  font-size: 13px !important;
  text-align: left !important;
}

.forecast-card .responsive-table td:last-child button {
  align-items: center !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  height: 26px !important;
  justify-content: center !important;
  padding: 0 !important;
  width: 26px !important;
}

.forecast-card .responsive-table td:last-child button svg {
  height: 15px !important;
  width: 15px !important;
}

#root > div.dark .forecast-card {
  --sav-forecast-blue: var(--sav-dark-blue);
  border-color: var(--sav-dark-border) !important;
}

#root > div.dark .forecast-card .responsive-table {
  color: var(--sav-dark-text) !important;
}

#root > div.dark .forecast-card .responsive-table thead th,
#root > div.dark .forecast-card .responsive-table tfoot {
  background: var(--sav-dark-surface-soft) !important;
  color: var(--sav-dark-muted) !important;
}

#root > div.dark .forecast-card .responsive-table tbody tr,
#root > div.dark .forecast-card .responsive-table input.sav-forecast-input,
#root > div.dark .forecast-card .responsive-table input.sav-forecast-input:focus,
#root > div.dark .forecast-card .responsive-table input.sav-forecast-input-focused {
  background: var(--sav-dark-surface) !important;
  color: var(--sav-dark-text) !important;
}

#root > div.dark .forecast-card .responsive-table tbody tr:hover {
  background: var(--sav-dark-hover) !important;
}

/* Native deployment pass: Devis totals, signatures and dashboard polish. */
.quote-list-table {
  overflow-x: auto !important;
  overflow-y: visible !important;
}

.quote-list-table .quote-list-header,
.quote-list-table .quote-list-row,
.quote-list-table .quote-list-line {
  overflow: visible !important;
}

.quote-list-row {
  grid-template-columns:
    minmax(112px, 112px)
    minmax(118px, 118px)
    minmax(118px, 118px)
    minmax(92px, 92px)
    minmax(92px, 92px)
    minmax(116px, 116px)
    minmax(104px, 104px)
    minmax(78px, 78px)
    minmax(116px, 116px)
    minmax(96px, 96px)
    minmax(112px, 112px)
    minmax(112px, 112px)
    minmax(118px, 118px)
    minmax(40px, 40px) !important;
  min-width: 1424px !important;
}

.quote-list-header > span {
  white-space: normal !important;
}

.quote-list-line > span {
  min-width: 0 !important;
}

.quote-list-header > .quote-status-header,
.quote-list-line > .quote-status-cell {
  background: #ffffff !important;
  box-shadow: -10px 0 14px rgba(255, 255, 255, 0.88) !important;
  position: sticky !important;
  right: 40px !important;
  z-index: 5 !important;
}

.quote-list-header > .quote-actions-header,
.quote-list-line > .quote-actions-cell {
  background: #ffffff !important;
  position: sticky !important;
  right: 0 !important;
  z-index: 6 !important;
}

#root > div.dark .quote-list-header > .quote-status-header,
#root > div.dark .quote-list-line > .quote-status-cell,
#root > div.dark .quote-list-header > .quote-actions-header,
#root > div.dark .quote-list-line > .quote-actions-cell {
  background: var(--sav-dark-surface) !important;
}

.quote-list-header > .quote-supplier-header,
.quote-list-header > .quote-margin-header,
.quote-list-header > .quote-margin-rate-header,
.quote-list-header > .quote-fees-header,
.quote-list-header > .quote-amount-header,
.quote-list-header > .quote-vat-header,
.quote-list-header > .quote-ttc-header,
.quote-list-line > .quote-supplier-cell,
.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-fees-cell,
.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-vat-cell,
.quote-list-line > .quote-ttc-cell {
  align-items: flex-end !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  line-height: 1.08 !important;
  text-align: right !important;
}

.quote-list-line > .quote-supplier-cell,
.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-fees-cell,
.quote-list-line > .quote-amount-cell small,
.quote-list-line > .quote-vat-cell small {
  color: #1d4ed8 !important;
}

.quote-list-line > .quote-margin-rate-cell strong,
.quote-list-line > .quote-vat-cell small {
  font-size: 9px !important;
  font-weight: 500 !important;
}

.quote-list-header > .quote-fees-header {
  background: #f8fafc !important;
}

.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-ttc-cell {
  color: #111827 !important;
}

.sav-signature-block {
  background: transparent !important;
}

.sav-signature-block .sav-signature-layout {
  color: #4a4a4a !important;
  display: grid !important;
  gap: 14px !important;
  line-height: 1.35 !important;
  width: 100% !important;
}

.sav-signature-layout > strong {
  font-size: 13px !important;
  font-weight: 800 !important;
}

.sav-signature-layout > b {
  font-size: 12px !important;
  font-weight: 800 !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-signature-signatory {
  border-radius: 4px !important;
  cursor: text !important;
  display: inline-block !important;
  justify-self: start !important;
  min-width: 84px !important;
  outline: 1px solid transparent !important;
  outline-offset: 3px !important;
  transition: background-color 0.14s ease, outline-color 0.14s ease !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-signature-signatory:hover {
  background: #f8fafc !important;
  outline-color: #d9e1ec !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-signature-signatory:focus {
  background: #ffffff !important;
  outline-color: color-mix(in srgb, var(--sav-accent, #e30613) 48%, #ffffff) !important;
}

.sav-quote-preview-readonly .sav-signature-signatory,
.sav-print-client-view .sav-signature-signatory {
  cursor: default !important;
  outline: 0 !important;
}

.sav-signature-fields {
  display: grid !important;
  gap: 28px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.sav-signature-fields span,
.sav-signature-line {
  align-items: end !important;
  color: #666666 !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  min-height: 22px !important;
}

.sav-signature-fields i,
.sav-signature-line i {
  border-bottom: 1px dashed #b8b8b8 !important;
  display: block !important;
  height: 1px !important;
}

.sav-signature-line {
  grid-template-columns: auto minmax(0, 1fr) !important;
  margin-top: 6px !important;
}

.sav-document-insert-control {
  align-items: center !important;
  display: inline-flex !important;
  margin-top: 0 !important;
  pointer-events: auto !important;
  position: absolute !important;
  z-index: 85 !important;
}

.sav-doc-plus-main {
  align-items: center !important;
  background: var(--sav-accent) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 18px 34px var(--sav-accent-shadow-strong) !important;
  color: #ffffff !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 32px !important;
  font-weight: 500 !important;
  height: 56px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 56px !important;
  padding: 0 0 3px !important;
  width: 56px !important;
}

.sav-doc-plus-main:hover,
.sav-doc-plus-main:focus-visible {
  background: var(--sav-accent) !important;
  box-shadow:
    0 18px 34px var(--sav-accent-shadow-strong),
    0 0 0 4px color-mix(in srgb, var(--sav-accent) 16%, transparent) !important;
  color: #ffffff !important;
  outline: none !important;
  transform: translateY(-1px) !important;
}

.sav-document-insert-control .sav-doc-plus-menu {
  align-items: center !important;
  display: none !important;
  gap: 8px !important;
  left: 64px !important;
  min-height: 36px !important;
  pointer-events: auto !important;
  position: absolute !important;
  top: 10px !important;
  z-index: 86 !important;
}

.sav-document-insert-control.is-open .sav-doc-plus-menu {
  display: inline-flex !important;
}

.sav-document-insert-control .sav-doc-plus-menu button {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #dbe3ee !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 24px rgba(14, 35, 64, 0.12) !important;
  color: #0e2340 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  height: 28px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 28px !important;
  padding: 0 !important;
  pointer-events: auto !important;
  width: 28px !important;
}

.sav-document-insert-control .sav-doc-plus-menu button:hover,
.sav-document-insert-control .sav-doc-plus-menu button:focus-visible {
  border-color: var(--sav-accent) !important;
  color: var(--sav-accent) !important;
  outline: none !important;
}

.sav-document-insert-control .sav-doc-plus-menu [data-doc-insert="signature"] .sav-doc-plus-icon {
  display: block !important;
  fill: none !important;
  height: 17px !important;
  overflow: visible !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.45 !important;
  width: 17px !important;
}

.sav-quote-document-host .sav-service-rows {
  min-height: 0 !important;
}

.sav-quote-document-host .sav-service-section.is-collapsed {
  border-bottom-color: #dbe3ef !important;
}

.sav-dashboard-main {
  padding: clamp(14px, 2.3vw, 26px) !important;
}

.sav-dashboard-shell {
  gap: 14px !important;
  width: min(1240px, 100%) !important;
}

.sav-dashboard-header {
  min-height: 0 !important;
}

.sav-dashboard-header h1 {
  font-size: 24px !important;
}

.sav-dashboard-header p {
  font-size: 12px !important;
  margin: 4px 0 0 !important;
}

.sav-dashboard-zone,
.sav-dashboard-panel {
  border-left: 4px solid rgba(227, 6, 19, 0.72) !important;
  padding: 14px !important;
}

.sav-dashboard-zone:nth-of-type(2),
.sav-dashboard-panel:nth-child(2) {
  border-left-color: #315bdc !important;
}

.sav-dashboard-zone-title {
  margin-bottom: 10px !important;
}

.sav-dashboard-zone-title h2,
.sav-dashboard-panel h2 {
  font-size: 14px !important;
}

.sav-dashboard-zone-title span {
  font-size: 12px !important;
}

.sav-dashboard-metrics {
  gap: 8px !important;
  grid-template-columns: repeat(auto-fit, minmax(136px, 1fr)) !important;
}

.sav-dashboard-metric {
  gap: 4px !important;
  min-height: 64px !important;
  padding: 10px 12px !important;
}

.sav-dashboard-metric strong {
  font-size: 21px !important;
}

.sav-dashboard-metric small {
  font-size: 11px !important;
  line-height: 1.25 !important;
}

.sav-dashboard-grid {
  grid-template-columns: minmax(230px, 0.65fr) minmax(460px, 1.65fr) !important;
}

.sav-dashboard-table {
  font-size: 13px !important;
}

.sav-dashboard-table th,
.sav-dashboard-table td {
  padding: 9px 7px !important;
}


.sav-dashboard-main {
  padding: clamp(16px, 2vw, 28px) !important;
}

.sav-dashboard-shell {
  gap: 14px !important;
  max-width: 1320px !important;
}

.sav-dashboard-header {
  margin-bottom: 8px !important;
}

.sav-dashboard-header h1 {
  font-size: clamp(24px, 3vw, 34px) !important;
  line-height: 1 !important;
}

.sav-dashboard-zone,
.sav-dashboard-panel {
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid #dde4f0 !important;
  border-left: 0 !important;
  border-radius: 8px !important;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06) !important;
  padding: 20px 22px !important;
  position: relative !important;
}

.sav-dashboard-zone::before,
.sav-dashboard-panel::before {
  background: linear-gradient(180deg, #e30613, #f87171) !important;
  border-radius: 8px 0 0 8px !important;
  content: "" !important;
  inset: 0 auto 0 0 !important;
  position: absolute !important;
  width: 3px !important;
}

.sav-dashboard-zone:nth-of-type(2)::before,
.sav-dashboard-project-panel::before {
  background: linear-gradient(180deg, #315bdc, #7c9cff) !important;
}

.sav-dashboard-metrics,
.sav-dashboard-v2-kpis {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
}

.sav-dashboard-v2-kpis {
  background: #ffffff !important;
  border: 1px solid #dde4f0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}

.sav-dashboard-metric {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  min-height: 74px !important;
  padding: 10px 18px !important;
  position: relative !important;
}

.sav-dashboard-metric + .sav-dashboard-metric {
  border-left: 1px solid #e2e8f0 !important;
}

.sav-dashboard-metric-icon {
  align-items: center !important;
  background: rgba(227, 6, 19, 0.10) !important;
  border-radius: 999px !important;
  color: #d72828 !important;
  display: inline-flex !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  height: 34px !important;
  justify-content: center !important;
  width: 34px !important;
}

.sav-dashboard-metric[data-tone="blue"] .sav-dashboard-metric-icon,
.sav-dashboard-metric[data-tone="blue"] strong {
  color: #315bdc !important;
}

.sav-dashboard-metric[data-tone="blue"] .sav-dashboard-metric-icon {
  background: rgba(49, 91, 220, 0.11) !important;
}

.sav-dashboard-metric[data-tone="violet"] .sav-dashboard-metric-icon {
  background: rgba(124, 58, 237, 0.11) !important;
  color: #6d28d9 !important;
}

.sav-dashboard-metric[data-tone="amber"] .sav-dashboard-metric-icon {
  background: rgba(245, 158, 11, 0.14) !important;
  color: #d97706 !important;
}

.sav-dashboard-metric span:not(.sav-dashboard-metric-icon) {
  color: #334155 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
}

.sav-dashboard-metric strong {
  color: #111827 !important;
  display: block !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  margin: 3px 0 !important;
}

.sav-dashboard-metric small {
  color: #64748b !important;
  display: block !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
}

.sav-dashboard-grid {
  grid-template-columns: minmax(330px, 0.9fr) minmax(620px, 1.7fr) !important;
}

.sav-dashboard-status-layout {
  align-items: center !important;
  display: grid !important;
  gap: 26px !important;
  grid-template-columns: 180px minmax(0, 1fr) !important;
}

.sav-dashboard-donut {
  align-items: center !important;
  aspect-ratio: 1 !important;
  background: conic-gradient(#d72828 0deg var(--angle, 0deg), #eef2f7 var(--angle, 0deg) 360deg) !important;
  border-radius: 999px !important;
  display: grid !important;
  justify-items: center !important;
  place-content: center !important;
  position: relative !important;
}

.sav-dashboard-donut::after {
  background: #ffffff !important;
  border-radius: 999px !important;
  content: "" !important;
  inset: 26% !important;
  position: absolute !important;
}

.sav-dashboard-donut strong,
.sav-dashboard-donut span {
  position: relative !important;
  z-index: 1 !important;
}

.sav-dashboard-donut strong {
  color: #111827 !important;
  font-size: 28px !important;
  line-height: 1 !important;
}

.sav-dashboard-donut span {
  color: #475569 !important;
  font-size: 12px !important;
}

.sav-dashboard-bar-row {
  grid-template-columns: 72px minmax(0, 1fr) 64px !important;
}

.sav-dashboard-bar-row strong small {
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 500 !important;
}

.sav-dashboard-table th,
.sav-dashboard-table td {
  padding: 14px 12px !important;
}

.sav-dashboard-table td:nth-child(n + 2),
.sav-dashboard-table th:nth-child(n + 2) {
  text-align: right !important;
}

@media (max-width: 980px) {
  .sav-dashboard-grid,
  .sav-dashboard-status-layout {
    grid-template-columns: 1fr !important;
  }
}

.quote-list-header > .quote-supplier-header,
.quote-list-header > .quote-margin-header,
.quote-list-header > .quote-margin-rate-header,
.quote-list-header > .quote-amount-header,
.quote-list-header > .quote-vat-header,
.quote-list-header > .quote-ttc-header,
.quote-list-line > .quote-supplier-cell,
.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-vat-cell,
.quote-list-line > .quote-ttc-cell {
  justify-content: flex-end !important;
  text-align: right !important;
}

.quote-list-line > .quote-supplier-cell,
.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-vat-cell,
.quote-list-line > .quote-ttc-cell,
.quote-list-line > .quote-supplier-cell strong,
.quote-list-line > .quote-amount-cell strong,
.quote-list-line > .quote-vat-cell strong,
.quote-list-line > .quote-ttc-cell strong {
  color: #111827 !important;
}

.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-margin-cell strong,
.quote-list-line > .quote-margin-rate-cell strong {
  color: #1d4ed8 !important;
}


.sav-dashboard-shell {
  max-width: 1500px !important;
}

.sav-dashboard-zone,
.sav-dashboard-panel {
  padding: 18px 20px !important;
}

.sav-dashboard-zone .sav-dashboard-metrics,
.sav-dashboard-money {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
}

.sav-dashboard-metric {
  min-height: 60px !important;
  padding: 8px 14px !important;
}

.sav-dashboard-grid {
  grid-template-columns: minmax(360px, 0.75fr) minmax(700px, 1.75fr) !important;
}

.sav-dashboard-project-panel {
  min-height: 320px !important;
}

.sav-dashboard-table tfoot td,
.sav-dashboard-table tr.sav-dashboard-total-row td {
  background: #f8fafc !important;
  color: #111827 !important;
  font-weight: 800 !important;
}

.sav-dashboard-table .sav-blue {
  color: #315bdc !important;
  font-weight: 800 !important;
}

@media (max-width: 1180px) {
  .sav-dashboard-grid {
    grid-template-columns: 1fr !important;
  }
}

.quote-list-header > .quote-supplier-header,
.quote-list-header > .quote-margin-header,
.quote-list-header > .quote-margin-rate-header,
.quote-list-header > .quote-amount-header,
.quote-list-header > .quote-ttc-header {
  color: #1d4ed8 !important;
  font-weight: 800 !important;
}

.quote-list-header > .quote-vat-header {
  color: #667085 !important;
  font-weight: 500 !important;
}

.quote-list-line > .quote-supplier-cell,
.quote-list-line > .quote-supplier-cell strong,
.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-margin-cell strong,
.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-margin-rate-cell strong {
  color: #1d4ed8 !important;
  font-weight: 500 !important;
}

.quote-list-line > .quote-vat-cell,
.quote-list-line > .quote-vat-cell strong,
.quote-list-line > .quote-vat-cell small {
  color: #111827 !important;
  font-weight: 500 !important;
}

.quote-list-header > .quote-supplier-header,
.quote-list-header > .quote-margin-header,
.quote-list-header > .quote-margin-rate-header,
.quote-list-header > .quote-amount-header,
.quote-list-header > .quote-vat-header,
.quote-list-header > .quote-ttc-header,
.quote-list-line > .quote-supplier-cell,
.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-vat-cell,
.quote-list-line > .quote-ttc-cell {
  align-items: flex-end !important;
  justify-content: center !important;
  overflow: visible !important;
  text-align: right !important;
}

.quote-list-row {
  grid-template-columns:
    minmax(92px, 0.86fr)
    minmax(96px, 0.9fr)
    minmax(96px, 0.9fr)
    minmax(76px, 0.64fr)
    minmax(80px, 0.68fr)
    minmax(104px, 0.9fr)
    minmax(92px, 0.78fr)
    minmax(72px, 0.62fr)
    minmax(104px, 0.9fr)
    minmax(86px, 0.74fr)
    minmax(96px, 0.82fr)
    minmax(104px, 0.86fr)
    minmax(92px, 0.8fr)
    minmax(34px, 36px) !important;
}

.sav-quote-unit-dropdown {
  background: #ffffff !important;
  border: 1px solid #cfd8e6 !important;
  border-radius: 8px !important;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18) !important;
  display: grid !important;
  gap: 2px !important;
  max-height: 260px !important;
  min-width: 96px !important;
  overflow: auto !important;
  padding: 4px !important;
  position: absolute !important;
  z-index: 99999 !important;
}

.sav-quote-unit-dropdown[hidden] {
  display: none !important;
}

.sav-quote-unit-option {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 6px !important;
  color: #111827 !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  min-height: 28px !important;
  padding: 4px 8px !important;
  text-align: left !important;
}

.sav-quote-unit-option:hover,
.sav-quote-unit-option.is-active {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
}

.sav-quote-unit-option strong {
  font-size: 11px !important;
  line-height: 1 !important;
  text-align: center !important;
}

.sav-quote-unit-option span {
  color: #667085 !important;
  font-size: 10px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-dashboard-main {
  background:
    linear-gradient(180deg, rgba(248, 250, 252, 0.78), rgba(255, 255, 255, 0.96)),
    #ffffff !important;
}

.sav-dashboard-shell {
  gap: 14px !important;
}

.sav-dashboard-banner {
  background-image:
    linear-gradient(90deg, rgba(15, 23, 42, 0.62), rgba(15, 23, 42, 0.12)),
    url("https://images.unsplash.com/photo-1506905925346-21bda4d32df4?auto=format&fit=crop&w=1800&q=80") !important;
  background-position: center 45% !important;
  background-size: cover !important;
  border-radius: 8px !important;
  min-height: clamp(92px, 13vw, 170px) !important;
  overflow: hidden !important;
  position: relative !important;
}

.sav-dashboard-banner::after {
  bottom: 14px !important;
  color: #ffffff !important;
  content: "Design & Build intelligence";
  font-size: 12px !important;
  font-weight: 600 !important;
  left: 18px !important;
  letter-spacing: 0 !important;
  position: absolute !important;
}

.sav-dashboard-zone,
.sav-dashboard-panel {
  border-color: #e3e8f1 !important;
  box-shadow: 0 12px 30px rgba(17, 24, 39, 0.07) !important;
}

.sav-dashboard-metric {
  align-items: center !important;
  background: linear-gradient(180deg, #ffffff, #f8fafc) !important;
  border-color: #e5ebf4 !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  min-height: 78px !important;
}

.sav-dashboard-metric-icon {
  align-items: center !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  height: 34px !important;
  justify-content: center !important;
  width: 34px !important;
}

.sav-dashboard-metric-icon svg {
  fill: none !important;
  height: 20px !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.9 !important;
  width: 20px !important;
}

.sav-dashboard-metric[data-tone="red"] .sav-dashboard-metric-icon {
  background: #fee2e2 !important;
  color: #dc2626 !important;
}

.sav-dashboard-metric[data-tone="blue"] .sav-dashboard-metric-icon {
  background: #dbeafe !important;
  color: #1d4ed8 !important;
}

.sav-dashboard-metric[data-tone="violet"] .sav-dashboard-metric-icon {
  background: #ede9fe !important;
  color: #7c3aed !important;
}

.sav-dashboard-metric[data-tone="amber"] .sav-dashboard-metric-icon {
  background: #fef3c7 !important;
  color: #b45309 !important;
}

.sav-dashboard-metric strong {
  font-size: clamp(20px, 1.65vw, 28px) !important;
  font-weight: 700 !important;
}

.sav-dashboard-status-layout {
  align-items: center !important;
  gap: 18px !important;
  grid-template-columns: 150px minmax(0, 1fr) !important;
}

.sav-dashboard-donut {
  box-shadow: inset 0 0 0 12px #ffffff, 0 12px 24px rgba(17, 24, 39, 0.08) !important;
}

.sav-dashboard-table th:nth-child(n + 2),
.sav-dashboard-table td:nth-child(n + 2) {
  text-align: right !important;
}

.sav-dashboard-table th:nth-child(2),
.sav-dashboard-table td:nth-child(2) {
  color: #1d4ed8 !important;
  font-weight: 800 !important;
}

/* 2026-06-01: keep the quote list fully visible at desktop preview widths. */
.quote-list-table {
  overflow-x: hidden !important;
}

.quote-list-row {
  grid-template-columns:
    minmax(0, 0.86fr)
    minmax(0, 0.88fr)
    minmax(0, 0.88fr)
    minmax(0, 0.62fr)
    minmax(0, 0.66fr)
    minmax(0, 1fr)
    minmax(0, 0.86fr)
    minmax(0, 0.66fr)
    minmax(0, 1fr)
    minmax(0, 0.78fr)
    minmax(0, 0.86fr)
    minmax(0, 0.94fr)
    minmax(0, 0.84fr)
    minmax(24px, 28px) !important;
  min-width: 0 !important;
  width: 100% !important;
}

.quote-list-header,
.quote-list-line {
  font-size: clamp(7px, 0.58cqw, 9.5px) !important;
}

.quote-list-header > span,
.quote-list-line > span,
.quote-list-line > div {
  overflow: visible !important;
  padding-left: clamp(2px, 0.32cqw, 6px) !important;
  padding-right: clamp(2px, 0.32cqw, 6px) !important;
}


/* 2026-06-01: follow-up polish from live preview comments. */
.forecast-card .responsive-table tbody td:first-child {
  padding-left: 10px !important;
}

.forecast-card .responsive-table tbody td:first-child::before {
  background: #94a3b8 !important;
  border-radius: 999px !important;
  content: "" !important;
  height: 18px !important;
  left: 5px !important;
  opacity: 0 !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 5px !important;
}

.forecast-card .responsive-table tbody td:first-child:has(input.sav-forecast-client-known)::before {
  background: #16a34a !important;
  opacity: 1 !important;
}

.forecast-card .responsive-table tbody td:first-child:has(input.sav-forecast-client-unknown)::before {
  background: #94a3b8 !important;
  opacity: 1 !important;
}

.forecast-card .responsive-table input.sav-forecast-client-input {
  padding-left: 12px !important;
}

.forecast-card .responsive-table input.sav-forecast-client-known,
.forecast-card .responsive-table input.sav-forecast-client-unknown {
  box-shadow: none !important;
}

.quote-list-header > .quote-supplier-header,
.quote-list-header > .quote-margin-header,
.quote-list-header > .quote-margin-rate-header,
.quote-list-header > .quote-amount-header,
.quote-list-header > .quote-vat-header,
.quote-list-header > .quote-ttc-header,
.quote-list-line > .quote-supplier-cell,
.quote-list-line > .quote-margin-cell,
.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-amount-cell,
.quote-list-line > .quote-vat-cell,
.quote-list-line > .quote-ttc-cell {
  align-items: center !important;
  font-size: clamp(10.5px, 0.82cqw, 12px) !important;
  font-weight: 500 !important;
  justify-content: flex-end !important;
  line-height: 1.15 !important;
  text-align: right !important;
}

.quote-list-line > .quote-supplier-cell strong,
.quote-list-line > .quote-margin-cell strong,
.quote-list-line > .quote-fees-cell strong,
.quote-list-line > .quote-amount-cell strong,
.quote-list-line > .quote-vat-cell strong,
.quote-list-line > .quote-ttc-cell strong {
  font-size: inherit !important;
  font-weight: 500 !important;
  line-height: inherit !important;
}

.quote-list-line > .quote-margin-rate-cell,
.quote-list-line > .quote-margin-rate-cell strong,
.quote-list-line > .quote-vat-cell small {
  font-size: clamp(9px, 0.68cqw, 10px) !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
}

.quote-list-header > .quote-status-header,
.quote-list-header > .quote-actions-header {
  background: #f3f4f6 !important;
}

.quote-list-header > .quote-actions-header {
  border-left: 1px solid #e5e7eb !important;
}

.quote-list-line > .quote-actions-cell {
  background: #f8fafc !important;
}

.quote-list-row {
  grid-template-columns:
    minmax(0, 0.92fr)
    minmax(0, 0.92fr)
    minmax(0, 0.92fr)
    minmax(0, 0.66fr)
    minmax(0, 0.68fr)
    minmax(0, 0.76fr)
    minmax(0, 0.76fr)
    minmax(0, 0.62fr)
    minmax(0, 0.82fr)
    minmax(0, 0.68fr)
    minmax(0, 0.78fr)
    minmax(0, 0.86fr)
    minmax(0, 0.78fr)
    minmax(24px, 28px) !important;
}

.quote-list-header,
.quote-list-line {
  font-size: clamp(7.2px, 0.56cqw, 9.4px) !important;
}

.sav-dashboard-banner {
  background-position: center 32% !important;
}

.sav-dashboard-metric {
  --sav-dashboard-tone: #dc2626;
  --sav-dashboard-tone-soft: #fee2e2;
  column-gap: 11px !important;
}

.sav-dashboard-metric[data-tone="blue"] {
  --sav-dashboard-tone: #1d4ed8;
  --sav-dashboard-tone-soft: #dbeafe;
}

.sav-dashboard-metric[data-tone="violet"] {
  --sav-dashboard-tone: #7c3aed;
  --sav-dashboard-tone-soft: #ede9fe;
}

.sav-dashboard-metric[data-tone="amber"] {
  --sav-dashboard-tone: #b45309;
  --sav-dashboard-tone-soft: #fef3c7;
}

.sav-dashboard-metric-icon {
  background: var(--sav-dashboard-tone-soft) !important;
  color: var(--sav-dashboard-tone) !important;
}

.sav-dashboard-metric > div {
  align-content: center !important;
  display: grid !important;
  min-width: 0 !important;
  row-gap: 2px !important;
}

.sav-dashboard-metric > div > span,
.sav-dashboard-metric > div > span:not(.sav-dashboard-metric-icon) {
  color: var(--sav-dashboard-tone) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

.sav-dashboard-metric strong {
  color: var(--sav-dashboard-tone) !important;
  line-height: 1.04 !important;
}

.sav-dashboard-metric small {
  color: #64748b !important;
  line-height: 1.15 !important;
}

/* Dashboard reference layout */
main.app-main.sav-dashboard-main:has(.sav-dashboard-shell),
.sav-dashboard-main {
  background: #ffffff !important;
  padding: 24px 40px 42px !important;
  padding-bottom: 42px !important;
  padding-left: 40px !important;
  padding-right: 40px !important;
  padding-top: 24px !important;
}

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

.sav-dashboard-header {
  margin: 0 0 12px !important;
}

.sav-dashboard-header h1 {
  color: #111827 !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  line-height: 1.05 !important;
  margin: 0 !important;
}

.sav-dashboard-header p {
  color: #56657a !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  margin: 8px 0 0 !important;
}

.sav-dashboard-v2-kpis {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  overflow: visible !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric {
  --sav-dashboard-tone: #5f6368;
  --sav-dashboard-tone-soft: #f1f3f4;
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.045) !important;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: 38px minmax(0, 1fr) !important;
  min-height: 104px !important;
  padding: 16px 14px !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric[data-tone="success"] {
  --sav-dashboard-tone: #137333;
  --sav-dashboard-tone-soft: #e6f4ea;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric[data-tone="entity"] {
  --sav-dashboard-tone: #1a73e8;
  --sav-dashboard-tone-soft: #e8f0fe;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric[data-tone="supplier"] {
  --sav-dashboard-tone: #5f6368;
  --sav-dashboard-tone-soft: #f1f3f4;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric[data-tone="margin"] {
  --sav-dashboard-tone: #5b5bd6;
  --sav-dashboard-tone-soft: #eeeeff;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric[data-tone="brand"] {
  --sav-dashboard-tone: #c5221f;
  --sav-dashboard-tone-soft: #fce8e6;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric[data-tone="revenue"] {
  --sav-dashboard-tone: #00897b;
  --sav-dashboard-tone-soft: #e0f2f1;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric[data-tone="discount"] {
  --sav-dashboard-tone: #8a4f00;
  --sav-dashboard-tone-soft: #fef7e0;
}

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

.sav-dashboard-v2-kpis .sav-dashboard-metric-icon {
  background: var(--sav-dashboard-tone-soft) !important;
  border-radius: 8px !important;
  color: var(--sav-dashboard-tone) !important;
  height: 38px !important;
  width: 38px !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric > div {
  align-content: center !important;
  display: grid !important;
  min-width: 0 !important;
  overflow: hidden !important;
  row-gap: 5px !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric > div > span {
  color: var(--sav-dashboard-tone) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  line-height: 1.05 !important;
  text-transform: none !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric strong {
  color: #202124 !important;
  display: block !important;
  font-size: clamp(20px, 1.45vw, 26px) !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
  line-height: 1 !important;
  margin: 0 !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric small {
  color: #667085 !important;
  font-size: 10.5px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
}

.sav-dashboard-v2-filter-panel {
  align-items: stretch !important;
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: minmax(320px, 0.96fr) minmax(620px, 2fr) !important;
  min-height: 398px !important;
}

.sav-dashboard-v2-filter-left,
.sav-dashboard-v2-filter-metrics-col,
.sav-dashboard-panel {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.045) !important;
}

.sav-dashboard-v2-filter-left {
  display: grid !important;
  gap: 18px !important;
  grid-template-rows: auto 1fr !important;
  padding: 20px !important;
}

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

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

.sav-dashboard-v2-filter-row label > span,
.sav-dashboard-focus-info small,
.sav-filter-metric-group-label {
  color: #526174 !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  text-transform: none !important;
}

.sav-dashboard-focus-select {
  appearance: auto !important;
  background: #ffffff !important;
  border: 1px solid #dbe3ee !important;
  border-radius: 6px !important;
  color: #111827 !important;
  cursor: pointer !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  height: 44px !important;
  padding: 0 12px !important;
  width: 100% !important;
}

.sav-dashboard-focus-info {
  align-content: start !important;
  display: grid !important;
  gap: 14px !important;
}

.sav-dashboard-focus-info span {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  display: grid !important;
  gap: 9px !important;
  min-height: 60px !important;
  padding: 15px 16px !important;
}

.sav-dashboard-focus-info strong {
  color: #111827 !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
}

.sav-dashboard-v2-filter-metrics {
  display: grid !important;
  gap: 6px !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr) !important;
  min-width: 0 !important;
}

.sav-dashboard-v2-filter-metrics-col {
  display: grid !important;
  gap: 10px !important;
  padding: 20px !important;
}

.sav-filter-metric-stack {
  align-content: start !important;
  display: grid !important;
  gap: 10px !important;
}

.sav-filter-metric-stack-black,
.sav-filter-metric-stack-supplier,
.sav-filter-metric-stack-purchases,
.sav-filter-metric-stack-client {
  min-height: 0 !important;
}

.sav-filter-metric-black,
.sav-filter-metric-red,
.sav-filter-metric-green,
.sav-filter-metric-blue,
.sav-filter-metric-brand,
.sav-filter-metric-margin,
.sav-filter-metric-warning,
.sav-filter-metric-discount {
  align-items: center !important;
  border: 1px solid #dbe3ee !important;
  border-radius: 8px !important;
  display: grid !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  gap: 12px !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  min-height: 52px !important;
  padding: 0 18px !important;
}

.sav-filter-metric-black {
  color: #111827 !important;
}

.sav-filter-metric-red {
  background: #fce8e6 !important;
  border-color: #f5c2bf !important;
  color: #c5221f !important;
}

.sav-filter-metric-green {
  background: #e6f4ea !important;
  border-color: #ceead6 !important;
  color: #137333 !important;
}

.sav-filter-metric-blue {
  background: #e8f0fe !important;
  border-color: #c6dafc !important;
  color: #1a73e8 !important;
}

.sav-filter-metric-brand {
  background: #fce8e6 !important;
  border-color: #f5c2bf !important;
  color: #c5221f !important;
}

.sav-filter-metric-margin {
  background: #f1f0ff !important;
  border-color: #d9d7ff !important;
  color: #5b5bd6 !important;
}

.sav-filter-metric-warning {
  background: #fef7e0 !important;
  border-color: #f4d78e !important;
  color: #8a4f00 !important;
}

.sav-filter-metric-discount {
  background: #f7f2ff !important;
  border-color: #e3d5fb !important;
  color: #6f42c1 !important;
}

.sav-filter-metric-black strong,
.sav-filter-metric-red strong,
.sav-filter-metric-green strong,
.sav-filter-metric-blue strong,
.sav-filter-metric-brand strong,
.sav-filter-metric-margin strong,
.sav-filter-metric-warning strong,
.sav-filter-metric-discount strong {
  font-size: 24px !important;
  font-weight: 500 !important;
  justify-self: end !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.sav-filter-metric-red small,
.sav-filter-metric-brand small,
.sav-filter-metric-margin small {
  color: #667085 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  justify-self: center !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

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

.sav-dashboard-panel {
  border-left: 0 !important;
  min-height: 254px !important;
  padding: 26px 28px !important;
}

.sav-dashboard-panel::before {
  content: none !important;
}

.sav-dashboard-panel h2 {
  color: #111827 !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  margin: 0 0 28px !important;
}

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

.sav-dashboard-forecast-table th:last-child,
.sav-dashboard-forecast-table td.sav-dashboard-forecast-margin-cell {
  text-align: right !important;
}

.sav-dashboard-forecast-margin {
  align-items: baseline !important;
  display: inline-grid !important;
  font-variant-numeric: tabular-nums !important;
  gap: 14px !important;
  grid-template-columns: auto auto !important;
  justify-content: end !important;
  white-space: nowrap !important;
}

.sav-dashboard-forecast-margin small,
.sav-dashboard-forecast-margin strong {
  color: inherit !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

.sav-dashboard-forecast-margin small {
  font-size: 12px !important;
  font-weight: 500 !important;
}

.sav-dashboard-forecast-margin strong {
  font-size: inherit !important;
  font-weight: 600 !important;
}

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

.sav-dashboard-table th {
  color: #526174 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  padding: 10px 8px 16px !important;
  text-align: left !important;
  text-transform: none !important;
}

.sav-dashboard-table td {
  border-top: 1px solid #e2e8f0 !important;
  color: #334155 !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  padding: 16px 8px !important;
}

.sav-dashboard-status-layout {
  align-items: center !important;
  display: grid !important;
  gap: 32px !important;
  grid-template-columns: 210px minmax(0, 1fr) !important;
}

.sav-dashboard-donut {
  box-shadow: none !important;
}

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

.sav-dashboard-pie {
  align-items: center !important;
  aspect-ratio: 1 !important;
  background: var(--pie, conic-gradient(#eef2f7 0deg 360deg)) !important;
  border-radius: 999px !important;
  color: #111827 !important;
  display: grid !important;
  justify-items: center !important;
  place-content: center !important;
  position: relative !important;
  width: 178px !important;
}

.sav-dashboard-pie::after {
  background: #ffffff !important;
  border-radius: inherit !important;
  content: "" !important;
  inset: 29% !important;
  position: absolute !important;
}

.sav-dashboard-pie strong,
.sav-dashboard-pie span {
  position: relative !important;
  z-index: 1 !important;
}

.sav-dashboard-pie strong {
  color: #111827 !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

.sav-dashboard-pie span {
  color: #64748b !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  margin-top: 8px !important;
  text-transform: none !important;
}

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

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

.sav-dashboard-pie-legend i {
  background: var(--c, #cbd5e1) !important;
  border-radius: 999px !important;
  display: block !important;
  height: 14px !important;
  width: 14px !important;
}

.sav-dashboard-pie-legend b,
.sav-dashboard-pie-legend small {
  color: #111827 !important;
  font-size: 16px !important;
  font-weight: 400 !important;
}

.sav-dashboard-line-chart {
  display: grid !important;
  gap: 16px !important;
}

.sav-dashboard-line-legend {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
}

.sav-dashboard-line-legend span {
  align-items: center !important;
  color: #334155 !important;
  display: inline-flex !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  gap: 10px !important;
}

.sav-dashboard-line-legend i {
  border-radius: 999px !important;
  display: inline-block !important;
  height: 6px !important;
  width: 24px !important;
}

.sav-dashboard-line-legend .sav-estimate {
  background: #1a73e8 !important;
}

.sav-dashboard-line-legend .sav-real {
  background: #137333 !important;
}

.sav-dashboard-line-legend strong {
  color: #0f172a !important;
  font-weight: 400 !important;
}

.sav-dashboard-line-chart svg {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  display: block !important;
  height: 190px !important;
  overflow: visible !important;
  padding: 0 !important;
  width: 100% !important;
}

.sav-dashboard-zero-line {
  stroke: #dbe3ef !important;
  stroke-width: 0.6 !important;
}

.sav-estimate-line {
  stroke: #1a73e8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.2 !important;
}

.sav-real-line {
  stroke: #137333 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.2 !important;
}

.sav-estimate-point,
.sav-real-point {
  fill: currentColor !important;
  stroke: #ffffff !important;
  stroke-width: 0.4 !important;
}

.sav-estimate-point {
  color: #1a73e8 !important;
}

.sav-real-point {
  color: #137333 !important;
}

.sav-dashboard-line-axis {
  color: #64748b !important;
  display: grid !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  grid-template-columns: repeat(var(--sav-axis-count, 12), minmax(0, 1fr)) !important;
  line-height: 1 !important;
  text-align: center !important;
}

.sav-dashboard-margin-breakdown {
  gap: 34px !important;
  padding: 10px 0 0 !important;
}

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

  .sav-dashboard-v2-grid > .sav-dashboard-supplier-panel,
  .sav-dashboard-v2-grid > .sav-dashboard-chart-panel:nth-child(2),
  .sav-dashboard-v2-grid > .sav-dashboard-chart-panel:nth-child(3),
  .sav-dashboard-v2-grid > .sav-dashboard-chart-panel:nth-child(4),
  .sav-dashboard-forecast-panel {
    grid-column: 1 / -1 !important;
  }
}


/* 2026-06-01: Devis list cell alignment correction. */
.quote-list-table {
  --sav-quote-list-header-bg: #f8fafc;
  border-radius: 8px !important;
  container-type: inline-size !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  scrollbar-gutter: auto !important;
}

.quote-list-table .quote-list-row {
  column-gap: 0 !important;
  grid-template-columns:
    minmax(62px, 0.84fr)
    minmax(62px, 0.78fr)
    minmax(64px, 0.8fr)
    minmax(55px, 0.58fr)
    minmax(60px, 0.6fr)
    minmax(68px, 0.74fr)
    minmax(68px, 0.74fr)
    minmax(58px, 0.58fr)
    minmax(72px, 0.72fr)
    minmax(76px, 0.76fr)
    minmax(58px, 0.58fr)
    minmax(68px, 0.68fr)
    minmax(74px, 0.72fr)
    minmax(88px, 0.86fr)
    minmax(42px, 42px) !important;
  max-width: 100% !important;
  min-width: 0 !important;
  width: 100% !important;
}

.quote-list-table .quote-list-header,
.quote-list-table .quote-list-line {
  min-width: 0 !important;
  width: 100% !important;
}

.quote-list-table .sav-quote-title-hidden {
  display: none !important;
  min-height: 0 !important;
  padding: 0 !important;
  width: 0 !important;
}

.quote-list-table .quote-list-header {
  background: var(--sav-quote-list-header-bg) !important;
  min-height: 35px !important;
}

.quote-list-table .quote-list-header > span,
.quote-list-table .quote-list-line > span,
.quote-list-table .quote-list-line > div {
  align-items: center !important;
  box-sizing: border-box !important;
  display: flex !important;
  min-height: 35px !important;
  overflow: hidden !important;
  padding-block: 0 !important;
  text-overflow: ellipsis !important;
}

.quote-list-table .quote-list-header > span {
  background: var(--sav-quote-list-header-bg) !important;
  color: #667085 !important;
  font-size: clamp(8px, 0.66cqw, 10px) !important;
  font-weight: 700 !important;
  justify-content: flex-start !important;
  line-height: 1.05 !important;
  text-align: left !important;
  text-transform: uppercase !important;
}

.quote-list-table .quote-list-line > span,
.quote-list-table .quote-list-line > div {
  font-size: clamp(9.5px, 0.74cqw, 11px) !important;
  justify-content: flex-start !important;
  line-height: 1.08 !important;
  text-align: left !important;
}

.quote-list-table .quote-list-header > .quote-supplier-header,
.quote-list-table .quote-list-header > .quote-margin-header,
.quote-list-table .quote-list-header > .quote-margin-rate-header,
.quote-list-table .quote-list-header > .quote-fees-header,
.quote-list-table .quote-list-header > .quote-amount-header,
.quote-list-table .quote-list-header > .quote-vat-header,
.quote-list-table .quote-list-header > .quote-ttc-header,
.quote-list-table .quote-list-line > .quote-supplier-cell,
.quote-list-table .quote-list-line > .quote-margin-cell,
.quote-list-table .quote-list-line > .quote-margin-rate-cell,
.quote-list-table .quote-list-line > .quote-fees-cell,
.quote-list-table .quote-list-line > .quote-amount-cell,
.quote-list-table .quote-list-line > .quote-vat-cell,
.quote-list-table .quote-list-line > .quote-ttc-cell {
  align-items: flex-end !important;
  flex-direction: column !important;
  font-size: clamp(9.5px, 0.74cqw, 11px) !important;
  font-weight: 500 !important;
  justify-content: center !important;
  line-height: 1.08 !important;
  text-align: right !important;
}

.quote-list-table .quote-list-header > .quote-supplier-header,
.quote-list-table .quote-list-header > .quote-margin-header,
.quote-list-table .quote-list-header > .quote-margin-rate-header,
.quote-list-table .quote-list-header > .quote-fees-header,
.quote-list-table .quote-list-header > .quote-amount-header,
.quote-list-table .quote-list-header > .quote-vat-header,
.quote-list-table .quote-list-header > .quote-ttc-header {
  align-items: flex-end !important;
  background: var(--sav-quote-list-header-bg) !important;
  justify-content: center !important;
}

.quote-list-table .quote-list-header > .quote-status-header,
.quote-list-table .quote-list-header > .quote-actions-header {
  background: var(--sav-quote-list-header-bg) !important;
  color: #667085 !important;
  justify-content: center !important;
  position: static !important;
  right: auto !important;
  box-shadow: none !important;
  text-align: center !important;
}

.quote-list-table .quote-list-line > .quote-status-cell,
.quote-list-table .quote-list-line > .quote-actions-cell {
  align-items: center !important;
  background: #ffffff !important;
  box-shadow: none !important;
  justify-content: center !important;
  position: static !important;
  right: auto !important;
  text-align: center !important;
}

.quote-list-table .quote-list-line > .quote-supplier-cell strong,
.quote-list-table .quote-list-line > .quote-margin-cell strong,
.quote-list-table .quote-list-line > .quote-margin-rate-cell strong,
.quote-list-table .quote-list-line > .quote-fees-cell strong,
.quote-list-table .quote-list-line > .quote-amount-cell strong,
.quote-list-table .quote-list-line > .quote-vat-cell strong,
.quote-list-table .quote-list-line > .quote-ttc-cell strong,
.quote-list-table .quote-list-line > .quote-vat-cell small {
  align-items: center !important;
  display: inline-flex !important;
  justify-content: flex-end !important;
  line-height: 1.08 !important;
  min-height: 12px !important;
  text-align: right !important;
  width: 100% !important;
}

.quote-list-table .quote-list-line > .quote-margin-rate-cell strong,
.quote-list-table .quote-list-line > .quote-fees-cell strong {
  font-size: clamp(9.5px, 0.74cqw, 11px) !important;
  font-weight: 500 !important;
}

.quote-list-table .quote-list-line > .quote-fees-cell {
  color: #005eb8 !important;
  font-size: clamp(9.5px, 0.74cqw, 11px) !important;
  font-weight: 500 !important;
}

.quote-list-table .quote-list-header > .sav-quote-title-hidden,
.quote-list-table .quote-list-line > .sav-quote-title-hidden {
  display: none !important;
  min-height: 0 !important;
  padding: 0 !important;
  width: 0 !important;
}

/* 2026-06-01: final polish for quote actions, footer centering and forecast cells. */
.quote-list-line > .quote-actions-cell,
.quote-list-line .quote-actions,
.quote-list-line .quote-action-trigger,
.quote-list-line .quote-action-trigger:hover,
.quote-list-line .quote-action-trigger:active,
.quote-list-line .quote-action-trigger[aria-expanded="true"] {
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}


.forecast-card .responsive-table tbody td.sav-forecast-formatted-cell {
  position: relative !important;
}

.forecast-card .responsive-table tbody td.sav-forecast-formatted-cell::after {
  align-items: center !important;
  bottom: 2px !important;
  color: inherit !important;
  content: attr(data-sav-formatted-value) !important;
  display: flex !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  justify-content: flex-end !important;
  left: 5px !important;
  line-height: 1 !important;
  pointer-events: none !important;
  position: absolute !important;
  right: 8px !important;
  text-align: right !important;
  top: 2px !important;
  z-index: 1 !important;
}

.forecast-card .responsive-table tbody td.sav-forecast-formatted-cell.sav-forecast-editing::after,
.forecast-card .responsive-table tbody td.sav-forecast-formatted-cell:focus-within::after {
  display: none !important;
}

.forecast-card .responsive-table tbody td.sav-forecast-formatted-cell:not(:focus-within) input.sav-forecast-number-input {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  opacity: 0 !important;
}

.forecast-card .responsive-table tbody td.sav-forecast-formatted-cell:not(:focus-within) input.sav-forecast-number-input::selection {
  background: transparent !important;
}

.forecast-card .responsive-table tbody td.sav-forecast-formatted-cell:focus-within input.sav-forecast-number-input {
  -webkit-text-fill-color: currentColor !important;
  color: inherit !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 2 !important;
}

.forecast-card .responsive-table tbody td:first-child {
  overflow: hidden !important;
  position: relative !important;
}

.forecast-card .responsive-table tbody td:first-child::before {
  border-radius: 999px !important;
  content: "" !important;
  height: 18px !important;
  left: 10px !important;
  opacity: 0 !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 2px !important;
  z-index: 2 !important;
}

.forecast-card .responsive-table tbody td:first-child:has(input.sav-forecast-client-known)::before {
  background: #16a34a !important;
  opacity: 1 !important;
}

.forecast-card .responsive-table tbody td:first-child:has(input.sav-forecast-client-unknown)::before {
  background: #94a3b8 !important;
  opacity: 1 !important;
}

.forecast-card .responsive-table tbody td:first-child input.sav-forecast-client-input {
  box-shadow: none !important;
  padding-left: 8px !important;
}

/* Structured postal addresses: editable as street, postal code and city while
   preserving the historical multiline `address` field for document exports. */
.sav-structured-address-legacy-label,
.sav-structured-address-legacy {
  display: none !important;
}

.sav-client-structured-address {
  box-sizing: border-box !important;
  min-width: 0 !important;
  width: 100% !important;
}

.sav-structured-address-grid {
  display: grid !important;
  gap: 10px 12px !important;
  grid-template-columns: minmax(120px, 0.72fr) minmax(180px, 1.28fr) !important;
  min-width: 0 !important;
  width: 100% !important;
}

.sav-structured-address-field {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  min-width: 0 !important;
}

.sav-structured-address-field > span {
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.2 !important;
}

.sav-structured-address-field > input {
  background: #ffffff !important;
  border: 1px solid #d7dee8 !important;
  border-radius: 10px !important;
  box-sizing: border-box !important;
  color: #111827 !important;
  font-size: 13px !important;
  height: 40px !important;
  line-height: 1.2 !important;
  min-width: 0 !important;
  outline: 0 !important;
  padding: 0 11px !important;
  width: 100% !important;
}

.sav-structured-address-field > input:focus {
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px var(--sav-accent-shadow-soft) !important;
}

.sav-structured-address-street {
  grid-column: 1 / -1 !important;
}

.company-address-row:not(.company-address-row-header) {
  min-height: 88px !important;
}

.company-address-row:not(.company-address-row-header) > span {
  min-height: 88px !important;
}

.company-address-row .sav-company-structured-address-cell {
  align-items: stretch !important;
  display: block !important;
  padding: 6px !important;
}

.sav-company-structured-address {
  min-width: 0 !important;
  width: 100% !important;
}

.sav-structured-address-grid-compact {
  gap: 5px 7px !important;
  grid-template-columns: minmax(68px, 0.72fr) minmax(96px, 1.28fr) !important;
}

.sav-structured-address-grid-compact .sav-structured-address-field {
  gap: 2px !important;
}

.sav-structured-address-grid-compact .sav-structured-address-field > span {
  font-size: 8px !important;
  text-transform: uppercase !important;
}

.sav-structured-address-grid-compact .sav-structured-address-field > input {
  border-radius: 7px !important;
  font-size: 10px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 7px !important;
}

#root > div.dark .sav-structured-address-field > span {
  color: #aeb8c7 !important;
}

#root > div.dark .sav-structured-address-field > input {
  background: #1f2937 !important;
  border-color: #46546a !important;
  color: #f8fafc !important;
}

@media (max-width: 520px) {
  .sav-structured-address-grid {
    grid-template-columns: 1fr !important;
  }

  .sav-structured-address-field {
    grid-column: 1 !important;
  }
}


/* Offer print route: native A4 document, used by /offers/:id/print. */
html.sav-offer-print-html,
body.sav-offer-print-route {
  background: #eef2f6 !important;
  color: #333333 !important;
  font-family: var(--sav-font-family) !important;
  margin: 0 !important;
  min-height: 100% !important;
  padding: 0 !important;
}

body.sav-offer-print-route #root {
  background: transparent !important;
  display: block !important;
  min-height: 100vh !important;
  padding: 26px 0 !important;
}

.offer-print-document {
  --offer-print-font: var(--sav-font-family);
  --offer-print-font-size: 8.5pt;
  --offer-print-line-height: 1.27;
  --offer-print-border: #111111;
  --offer-print-soft-border: #d9d9d9;
  --offer-editor-page-width: 794px;
  --offer-editor-page-height: 1123px;
  --offer-editor-margin-x: 36px;
  --offer-editor-title-top: 42px;
  --offer-editor-title-width: 400px;
  --offer-editor-title-height: 110px;
  --offer-editor-title-font-size: 86px;
  --offer-editor-logo-width: 112px;
  --offer-editor-logo-height: 110px;
  --offer-editor-intro-title-font-size: 21px;
  --offer-editor-intro-subtitle-font-size: 20px;
  --offer-editor-parties-top: 174px;
  --offer-editor-content-bottom: 96px;
  background: #ffffff !important;
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.12) !important;
  box-sizing: border-box !important;
  color: #333333 !important;
  font-family: var(--offer-print-font) !important;
  font-size: var(--offer-print-font-size) !important;
  line-height: var(--offer-print-line-height) !important;
  margin: 0 auto !important;
  min-height: var(--offer-editor-page-height) !important;
  padding: var(--offer-editor-title-top) var(--offer-editor-margin-x) var(--offer-editor-content-bottom) !important;
  width: var(--offer-editor-page-width) !important;
}

.offer-print-error,
.offer-print-loading {
  min-height: 120mm !important;
}

.offer-cover-header {
  break-inside: avoid !important;
  margin: 0 0 6mm !important;
  page-break-inside: avoid !important;
}

.offer-cover-title-row {
  align-items: start !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: var(--offer-editor-title-width) minmax(0, 1fr) var(--offer-editor-logo-width) !important;
  height: var(--offer-editor-title-height) !important;
  min-height: var(--offer-editor-title-height) !important;
}

.offer-cover-title-row h1 {
  color: #333333 !important;
  font-size: var(--offer-editor-title-font-size) !important;
  font-weight: 800 !important;
  grid-column: 1 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  margin: 0 !important;
  text-transform: uppercase !important;
}

.offer-cover-title-row img {
  display: block !important;
  grid-column: 3 !important;
  height: var(--offer-editor-logo-height) !important;
  max-height: var(--offer-editor-logo-height) !important;
  max-width: var(--offer-editor-logo-width) !important;
  object-fit: contain !important;
  width: var(--offer-editor-logo-width) !important;
}

.offer-cover-parties {
  display: grid !important;
  gap: 20mm !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.78fr) !important;
  margin-top: calc(var(--offer-editor-parties-top) - var(--offer-editor-title-top) - var(--offer-editor-title-height)) !important;
}

.offer-cover-parties strong,
.offer-print-intro strong {
  font-weight: 700 !important;
}

.offer-cover-parties p,
.offer-print-intro p {
  color: #555555 !important;
  margin: 3pt 0 0 !important;
  white-space: pre-line !important;
}

.offer-cover-meta {
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.55fr) minmax(0, 0.55fr) minmax(0, 1fr) !important;
  margin-top: 12mm !important;
}

.offer-cover-meta > div {
  min-width: 0 !important;
}

.offer-cover-meta span {
  border-bottom: 0.45pt solid #777777 !important;
  color: #555555 !important;
  display: block !important;
  font-weight: 400 !important;
  padding-bottom: 4pt !important;
}

.offer-cover-meta strong {
  color: #555555 !important;
  display: block !important;
  font-weight: 400 !important;
  overflow-wrap: anywhere !important;
  padding-top: 3pt !important;
}

.offer-print-intro {
  break-inside: avoid !important;
  margin: 0 0 6mm !important;
  page-break-inside: avoid !important;
}

.offer-print-intro h2 {
  color: #444444 !important;
  font-size: var(--offer-editor-intro-title-font-size) !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.1 !important;
  margin: 0 0 1pt !important;
  overflow-wrap: normal !important;
  white-space: nowrap !important;
}

.offer-print-intro h3 {
  color: #8a8a8a !important;
  font-size: var(--offer-editor-intro-subtitle-font-size) !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  overflow-wrap: normal !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.offer-print-project {
  margin-top: 3mm !important;
}

.offer-print-project > strong {
  color: #444444 !important;
  display: block !important;
  font-size: var(--offer-print-font-size) !important;
  line-height: 1.25 !important;
  margin: 0 !important;
}

.offer-print-project > p {
  margin: 1.5mm 0 0 !important;
}

.sav-quote-document-host [data-block-id="quote-number"] .sav-block-content,
.sav-quote-document-host [data-block-id="quote-title"] .sav-block-content,
.sav-quote-preview-shell [data-block-id="quote-number"] .sav-block-content,
.sav-quote-preview-shell [data-block-id="quote-title"] .sav-block-content {
  overflow-wrap: normal !important;
  white-space: pre !important;
}

.offer-print-section {
  break-inside: auto !important;
  margin-top: 3.5mm !important;
  page-break-inside: auto !important;
}

.offer-print-section > h2 {
  break-after: avoid !important;
  color: #333333 !important;
  font-size: 9.5pt !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  margin: 0 0 2mm !important;
  page-break-after: avoid !important;
}

.offer-table,
.offer-summary-table,
.offer-payment-table {
  border-collapse: collapse !important;
  break-inside: auto !important;
  color: #333333 !important;
  font-family: var(--offer-print-font) !important;
  font-size: var(--offer-print-font-size) !important;
  line-height: var(--offer-print-line-height) !important;
  page-break-inside: auto !important;
  table-layout: fixed !important;
  width: 100% !important;
}

.offer-table thead,
.offer-summary-table thead,
.offer-payment-table thead {
  display: table-header-group !important;
}

.offer-table tfoot,
.offer-summary-table tfoot,
.offer-payment-table tfoot {
  display: table-footer-group !important;
}

.offer-table tr,
.offer-summary-table tr,
.offer-payment-table tr {
  break-inside: avoid !important;
  page-break-inside: avoid !important;
}

.offer-line-group,
.offer-line-group > tr,
.offer-line-group > tr > td {
  break-inside: avoid-page !important;
  page-break-inside: avoid !important;
}

.offer-table th,
.offer-table td,
.offer-summary-table th,
.offer-summary-table td,
.offer-payment-table th,
.offer-payment-table td {
  border-bottom: 0.35pt solid var(--offer-print-soft-border) !important;
  box-sizing: border-box !important;
  font-size: var(--offer-print-font-size) !important;
  line-height: var(--offer-print-line-height) !important;
  padding: 1.25pt 2pt !important;
  vertical-align: top !important;
}

.offer-table th,
.offer-summary-table th,
.offer-payment-table th {
  border-bottom-color: var(--offer-print-border) !important;
  color: #111111 !important;
  font-size: 7.25pt !important;
  font-weight: 700 !important;
  text-align: left !important;
}

.offer-table .col-number {
  width: 7% !important;
}

.offer-table .col-description {
  width: 58% !important;
}

.offer-table .col-qty {
  width: 7% !important;
}

.offer-table .col-unit {
  width: 5% !important;
}

.offer-table .col-price,
.offer-table .col-fee-percent {
  width: 10% !important;
}

.offer-table .col-amount {
  width: 13% !important;
}

.offer-fees-table .col-number {
  width: 6% !important;
}

.offer-fees-table .col-description {
  width: 42% !important;
}

.offer-fees-table .col-qty {
  width: 6% !important;
}

.offer-fees-table .col-unit {
  width: 4% !important;
}

.offer-fees-table col:nth-child(5) {
  width: 12% !important;
}

.offer-fees-table .col-fee-percent {
  width: 8% !important;
}

.offer-fees-table col:nth-child(7) {
  width: 9% !important;
}

.offer-fees-table .col-amount {
  width: 13% !important;
}

.cell-number {
  color: #555555 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.cell-description {
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

.cell-qty,
.cell-unit,
.cell-price,
.cell-amount,
.offer-table th:nth-child(n + 3),
.offer-summary-table th:last-child,
.offer-summary-table td:last-child,
.offer-payment-table td:nth-child(n + 2),
.offer-payment-table th:nth-child(n + 2) {
  text-align: right !important;
  white-space: nowrap !important;
}

.cell-price,
.cell-amount {
  color: #111827 !important;
  font-weight: 400 !important;
}

.offer-table tbody td {
  border-bottom-color: transparent !important;
}

.offer-section-row td {
  font-weight: 800 !important;
  padding-top: 4pt !important;
}

.offer-section-level-2 td {
  padding-left: 8pt !important;
}

.offer-line-media {
  break-inside: avoid !important;
  display: block !important;
  height: auto !important;
  margin: 3mm auto !important;
  max-height: 70mm !important;
  max-width: 100% !important;
  object-fit: contain !important;
  page-break-inside: avoid !important;
}

.offer-media-row td {
  padding-bottom: 4mm !important;
  padding-top: 4mm !important;
}

.offer-subtotal-row th,
.offer-subtotal-row td {
  border-bottom: 0 !important;
  border-bottom-color: transparent !important;
  border-bottom-width: 0 !important;
  color: #111827 !important;
  font-weight: 700 !important;
  padding-bottom: 1.4pt !important;
  padding-top: 1.4pt !important;
}

.offer-subtotal-row-start th,
.offer-subtotal-row-start td {
  padding-top: 4pt !important;
}

.offer-subtotal-row-end th,
.offer-subtotal-row-end td {
  border-bottom-color: transparent !important;
  border-bottom-width: 0 !important;
  padding-bottom: 4pt !important;
}

.offer-subtotal-row .offer-subtotal-label {
  text-align: right !important;
}

.offer-lot-totals,
.offer-global-totals {
  break-inside: avoid !important;
  font-size: 8.25pt !important;
  line-height: 1.25 !important;
  margin-left: auto !important;
  margin-top: 2mm !important;
  page-break-inside: avoid !important;
  width: 82mm !important;
}

.offer-lot-totals span,
.offer-global-totals span {
  align-items: baseline !important;
  display: grid !important;
  gap: 5mm !important;
  grid-template-columns: minmax(0, 1fr) minmax(38mm, max-content) !important;
  justify-content: end !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.offer-lot-totals strong,
.offer-global-totals strong {
  color: #111827 !important;
  font-weight: 800 !important;
  justify-self: end !important;
  white-space: nowrap !important;
}

.global-totals-section,
.payment-schedule-section,
.signature-section {
  break-inside: avoid !important;
  page-break-inside: avoid !important;
}

.offer-summary-table th,
.offer-summary-table td,
.offer-payment-table th,
.offer-payment-table td {
  border-bottom: 0.35pt solid var(--offer-print-soft-border) !important;
}

.offer-payment-table caption {
  caption-side: top !important;
  font-weight: 800 !important;
  margin-bottom: 4pt !important;
  text-align: left !important;
}

.offer-payment-table .is-key-phase td:first-child {
  font-weight: 800 !important;
}

.offer-payment-table .offer-payment-stage-column {
  width: 55% !important;
}

.offer-payment-table .offer-payment-percent-column {
  width: 9% !important;
}

.offer-payment-table .offer-payment-amount-column {
  width: 18% !important;
}

.offer-payment-table th:first-child,
.offer-payment-table td:first-child {
  overflow: hidden !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.offer-signature-lines {
  display: grid !important;
  gap: 10mm !important;
  grid-template-columns: repeat(2, 1fr) !important;
  margin-top: 6mm !important;
}

.offer-signature-lines span,
.offer-signature-line {
  align-items: end !important;
  display: grid !important;
  gap: 4mm !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
}

.offer-signature-lines i,
.offer-signature-line i {
  border-bottom: 0.35pt dashed #999999 !important;
  display: block !important;
  height: 1px !important;
}

.offer-signature-line {
  margin-top: 9mm !important;
}

@media print {
  @page {
    size: A4;
    margin: 11.1125mm 9.525mm 18mm 9.525mm;

    @bottom-center {
      content: "Savills Belux Group S.A. | 5-7 rue Léon Laval | Leudelange | L-3372 | Luxembourg\A T. +352 20 60 65 28 | www.savills.lu\A LU 287 20 300";
      color: #333333;
      font-family: "Google Sans Flex", "Google Sans", Arial, sans-serif;
      font-size: 6.5pt;
      line-height: 1.2;
      text-align: center;
      white-space: pre-line;
    }

    @bottom-right {
      content: counter(page) "/" counter(pages);
      color: #333333;
      font-family: "Google Sans Flex", "Google Sans", Arial, sans-serif;
      font-size: 7pt;
    }
  }

  html.sav-offer-print-html,
  body.sav-offer-print-route,
  body.sav-offer-print-route #root {
    background: #ffffff !important;
    height: auto !important;
    margin: 0 !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    width: auto !important;
  }

  .offer-print-document {
    box-shadow: none !important;
    margin: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    width: auto !important;
  }

  .offer-payment-table,
  .offer-payment-table th,
  .offer-payment-table td {
    border-left: 0 !important;
    border-right: 0 !important;
  }

  .offer-print-document * {
    box-shadow: none !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
}

/* Quote document editor: canonical source styles. */
.sav-quote-document-host,
.sav-quote-preview-shell {
  --sav-quote-line-font-size: 10.4px;
  --sav-quote-header-font-size: 8.4px;
  --sav-quote-margin-font-size: 8.1px;
  --sav-quote-border: #c9d3e2;
  --sav-quote-soft-blue: #eff6ff;
}

.sav-quote-document-host .sav-discount-block,
.sav-quote-preview-shell .sav-discount-block,
.sav-discount-dialog-backdrop,
.sav-discount-grid,
.sav-discount-total,
.sav-line-discount-note,
.sav-summary-discount-note,
.sav-client-discount-line,
.sav-summary-discount,
.quote-list-table .sav-quote-reduction-note,
.sav-quote-document-host [data-service-action="apply-discount"],
.sav-quote-document-host [data-doc-insert="discounts"] {
  display: none !important;
}

.sav-quote-document-host .sav-doc-block.sav-flow-block,
.sav-quote-document-host .sav-services-block,
.sav-quote-document-host .sav-services-edit-table,
.sav-quote-document-host .sav-services-client-table,
.sav-quote-document-host .sav-service-rows {
  overflow: visible !important;
}

.sav-quote-document-host .sav-block-grip {
  align-items: center !important;
  background: var(--sav-accent) !important;
  border: 2px solid #ffffff !important;
  border-radius: 999px !important;
  box-shadow: 0 4px 12px var(--sav-accent-shadow-medium) !important;
  cursor: grab !important;
  display: inline-flex !important;
  height: 12px !important;
  justify-content: center !important;
  left: -7px !important;
  padding: 0 !important;
  position: absolute !important;
  top: -7px !important;
  width: 12px !important;
  z-index: 35 !important;
}

.sav-quote-document-host .sav-flow-delete-button {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid rgba(227, 6, 19, 0.55) !important;
  border-radius: 999px !important;
  color: #e30613 !important;
  -webkit-text-fill-color: #e30613 !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  height: 18px !important;
  justify-content: center !important;
  line-height: 0 !important;
  min-height: 18px !important;
  padding: 0 !important;
  position: absolute !important;
  right: -9px !important;
  top: -9px !important;
  width: 18px !important;
  z-index: 36 !important;
}

.sav-quote-document-host .sav-flow-delete-button:hover,
.sav-quote-document-host .sav-flow-delete-button:focus,
.sav-quote-document-host .sav-flow-delete-button:focus-visible,
.sav-quote-document-host .sav-flow-delete-button:active {
  background: #fff5f5 !important;
  border-color: #e30613 !important;
  color: #e30613 !important;
  -webkit-text-fill-color: #e30613 !important;
}

.sav-quote-document-host .sav-services-title-content {
  align-items: center !important;
  display: inline-flex !important;
  gap: 4px !important;
  line-height: 1.1 !important;
}

.sav-quote-document-host .sav-fixed-title-prefix,
.sav-quote-document-host .sav-services-title-label {
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
}

.sav-quote-document-host .sav-services-edit-table {
  background: #ffffff !important;
  border: 1px solid var(--sav-quote-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: block !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-service-header,
.sav-quote-document-host .sav-page-repeated-header,
.sav-quote-document-host .sav-service-line.sav-edit-only {
  display: grid !important;
  grid-template-columns: 52px minmax(190px, 1fr) 42px 30px 76px 40px 76px 144px !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-service-header,
.sav-quote-document-host .sav-page-repeated-header {
  background: #f8fafc !important;
  border-bottom: 1px solid var(--sav-quote-border) !important;
  min-height: 30px !important;
}

.sav-quote-document-host .sav-service-section {
  align-items: center !important;
  background: #ffffff !important;
  border-bottom: 1px solid #dbe3ee !important;
  box-sizing: border-box !important;
  color: #111827 !important;
  display: grid !important;
  gap: 0 !important;
  grid-template-columns: 52px 20px minmax(0, 1fr) auto auto auto 22px !important;
  min-height: 25px !important;
  position: relative !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-service-section-level-2 {
  padding-left: 18px !important;
}

.sav-quote-document-host .sav-service-section-level-3 {
  padding-left: 36px !important;
}

.sav-quote-document-host .sav-service-section > span {
  align-items: center !important;
  color: #111827 !important;
  display: flex !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  height: 100% !important;
  justify-content: center !important;
  line-height: 1 !important;
  padding: 0 4px !important;
  text-align: center !important;
}

.sav-quote-document-host .sav-section-collapse {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #c9d3e2 !important;
  border-radius: 999px !important;
  color: #344054 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  height: 14px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 14px !important;
  padding: 0 !important;
  width: 14px !important;
}

.sav-quote-document-host .sav-section-title-field {
  align-items: center !important;
  display: flex !important;
  min-height: 25px !important;
  min-width: 0 !important;
  position: relative !important;
}

.sav-quote-document-host .sav-section-title-field > div[contenteditable] {
  align-items: center !important;
  box-sizing: border-box !important;
  color: #111827 !important;
  display: flex !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  min-height: 25px !important;
  min-width: 0 !important;
  outline: 0 !important;
  overflow: hidden !important;
  padding: 0 48px 0 6px !important;
  text-overflow: ellipsis !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-section-category-picker {
  align-items: center !important;
  align-self: center !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 6px !important;
  color: #667085 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  height: 20px !important;
  justify-content: center !important;
  margin: 0 !important;
  min-height: 20px !important;
  padding: 0 !important;
  position: absolute !important;
  right: 24px !important;
  top: 50% !important;
  transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease !important;
  transform: translateY(-50%) !important;
  width: 20px !important;
  z-index: 1 !important;
}

.sav-quote-document-host .sav-section-category-picker:hover,
.sav-quote-document-host .sav-section-category-picker[aria-expanded="true"] {
  background: #f4f7fb !important;
  border-color: #dbe3ee !important;
  color: #344054 !important;
}

.sav-quote-document-host .sav-section-category-picker:focus-visible {
  border-color: var(--sav-primary, #3f51b5) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--sav-primary, #3f51b5) 18%, transparent) !important;
  outline: 0 !important;
}

.sav-quote-document-host .sav-section-category-picker svg {
  display: block !important;
  height: 13px !important;
  pointer-events: none !important;
  width: 13px !important;
}

.sav-section-category-menu {
  background: #ffffff;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.16);
  box-sizing: border-box;
  color: #101828;
  font-family: var(--sav-font-family);
  max-height: min(292px, calc(100vh - 24px));
  overflow: hidden;
  padding: 7px;
  position: fixed;
  z-index: 2147482500;
}

.sav-section-category-menu-label {
  color: #667085;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 6px 8px 7px;
}

.sav-section-category-menu-options {
  max-height: 238px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.sav-section-category-option {
  align-items: center;
  background: #ffffff;
  border: 0;
  border-radius: 7px;
  color: #1d2939;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  justify-content: flex-start;
  min-height: 32px;
  padding: 7px 9px;
  text-align: left;
  text-transform: uppercase;
  width: 100%;
}

.sav-section-category-option:hover,
.sav-section-category-option:focus-visible {
  background: #f2f4f7;
  outline: 0;
}

.sav-section-category-option[aria-selected="true"] {
  background: color-mix(in srgb, var(--sav-primary, #3f51b5) 10%, #ffffff);
  color: var(--sav-primary, #3f51b5);
  font-weight: 700;
}

.sav-section-category-menu-empty {
  color: #667085;
  font-size: 12px;
  padding: 12px 9px;
}

.sav-quote-document-host .sav-service-section-level-2 .sav-section-title-field > div[contenteditable],
.sav-quote-document-host .sav-service-section-level-3 .sav-section-title-field > div[contenteditable] {
  font-weight: 700 !important;
}

/* Category names are canonical uppercase records; mirror that rule while typing
   so Settings never flashes a mixed-case draft before save. */
main input[placeholder="Ajouter une catégorie"] {
  text-transform: uppercase !important;
}

.sav-quote-document-host .sav-section-inline-action {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #dbe3ee !important;
  border-radius: 999px !important;
  color: #0e2340 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 7px !important;
  font-weight: 700 !important;
  height: 17px !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin-right: 3px !important;
  min-height: 17px !important;
  padding: 0 5px !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-section-danger-action {
  color: #e30613 !important;
  margin-right: 4px !important;
  padding: 0 !important;
  width: 17px !important;
}

.sav-quote-document-host .sav-section-drag-handle {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6dee9 !important;
  border-radius: 6px !important;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.1) !important;
  color: #607086 !important;
  cursor: grab !important;
  display: inline-flex !important;
  height: 24px !important;
  justify-content: center !important;
  left: -23px !important;
  min-height: 24px !important;
  opacity: 0.88 !important;
  padding: 0 !important;
  position: absolute !important;
  top: 50% !important;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, color 0.14s ease, opacity 0.14s ease !important;
  transform: translateY(-50%) !important;
  width: 18px !important;
  z-index: 25 !important;
}

.sav-quote-document-host .sav-section-drag-handle::before {
  background: currentColor !important;
  background-image: none !important;
  border-radius: 50% !important;
  box-shadow: 5px 0 0 currentColor, 0 5px 0 currentColor, 5px 5px 0 currentColor, 0 10px 0 currentColor, 5px 10px 0 currentColor !important;
  content: "" !important;
  height: 2px !important;
  transform: translate(-2.5px, -5px) !important;
  width: 2px !important;
}

.sav-quote-document-host .sav-service-section.is-collapsed {
  background: #fbfcfe !important;
}

.sav-quote-document-host .sav-service-header strong,
.sav-quote-document-host .sav-page-repeated-header strong {
  align-items: center !important;
  border-left: 1px solid #dbe3ee !important;
  color: #0e3a8a !important;
  display: flex !important;
  font-size: var(--sav-quote-header-font-size) !important;
  font-weight: 800 !important;
  justify-content: flex-end !important;
  line-height: 1.05 !important;
  min-height: 30px !important;
  padding: 0 5px !important;
  text-align: right !important;
  text-transform: uppercase !important;
}

.sav-quote-document-host .sav-service-header strong:first-child,
.sav-quote-document-host .sav-page-repeated-header strong:first-child {
  border-left: 0 !important;
  justify-content: center !important;
  text-align: center !important;
}

.sav-quote-document-host .sav-service-header strong:nth-child(2),
.sav-quote-document-host .sav-page-repeated-header strong:nth-child(2) {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-quote-document-host .sav-service-header strong:nth-child(4),
.sav-quote-document-host .sav-page-repeated-header strong:nth-child(4) {
  justify-content: center !important;
  text-align: center !important;
}

.sav-quote-document-host .sav-service-line.sav-edit-only {
  background: #ffffff !important;
  border-bottom: 1px solid #dbe3ee !important;
  min-height: 34px !important;
  position: relative !important;
}

.sav-quote-document-host .sav-services-kind-fees .sav-services-edit-table,
.sav-quote-document-host .sav-services-kind-main .sav-services-edit-table {
  overflow: visible !important;
}

.sav-quote-document-host .sav-service-line.sav-edit-only > input,
.sav-quote-document-host .sav-service-line.sav-edit-only > textarea,
.sav-quote-document-host .sav-service-line.sav-edit-only > .sav-fees-description-editor,
.sav-quote-document-host .sav-service-line.sav-edit-only > .sav-client-unit,
.sav-quote-document-host .sav-service-line.sav-edit-only > .sav-amount-stack {
  align-self: stretch !important;
  border: 0 !important;
  border-left: 1px solid #dbe3ee !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  color: #111827 !important;
  font-size: var(--sav-quote-line-font-size) !important;
  height: 100% !important;
  line-height: 1.12 !important;
  min-height: 34px !important;
  min-width: 0 !important;
  outline: 0 !important;
}

.sav-quote-document-host .sav-service-line.sav-edit-only > input:first-of-type {
  border-left: 0 !important;
}

.sav-quote-document-host .sav-service-line.sav-edit-only > input:not(.sav-description-control),
.sav-quote-document-host .sav-service-line.sav-edit-only > .sav-client-unit {
  align-items: center !important;
  display: flex !important;
  height: auto !important;
  justify-content: flex-end !important;
  padding: 0 5px !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-service-line.sav-edit-only > input[data-field="lineNumber"] {
  justify-content: center !important;
  padding: 0 3px !important;
  text-align: center !important;
}

.sav-quote-document-host .sav-service-line.sav-edit-only > input[data-field="unit"] {
  justify-content: center !important;
  padding: 0 2px !important;
  text-align: center !important;
}

.sav-quote-document-host textarea.sav-description-control {
  background: #ffffff !important;
  height: auto !important;
  min-height: 34px !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  padding: 8px 7px 5px !important;
  resize: vertical !important;
  text-align: left !important;
  white-space: pre-wrap !important;
  word-break: break-word !important;
}

.sav-quote-document-host .sav-fees-description-editor {
  background: #ffffff !important;
  height: auto !important;
  min-height: 34px !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  padding: 9px 10px !important;
  resize: none !important;
  text-align: left !important;
  white-space: normal !important;
  word-break: break-word !important;
}

.sav-quote-document-host .sav-service-line.sav-edit-only > input[data-field="supplierUnitPriceHT"],
.sav-quote-document-host .sav-service-line.sav-edit-only > input[data-field="marginValue"] {
  background: var(--sav-quote-soft-blue) !important;
  color: #005eb8 !important;
  font-weight: 700 !important;
}

.sav-quote-document-host .sav-amount-stack {
  align-items: center !important;
  column-gap: 4px !important;
  display: grid !important;
  grid-template-columns: minmax(58px, 0.9fr) minmax(64px, 1fr) !important;
  grid-template-rows: 1fr !important;
  height: auto !important;
  min-height: 34px !important;
  max-width: 100% !important;
  overflow: hidden !important;
  padding: 2px 4px !important;
}

.sav-quote-document-host .sav-amount-stack > strong {
  color: #111827 !important;
  font-size: var(--sav-quote-line-font-size) !important;
  font-weight: 800 !important;
  grid-column: 1 !important;
  justify-self: end !important;
  line-height: 1.08 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  padding-left: 0 !important;
  text-align: right !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-line-margin-badge {
  align-self: center !important;
  background: transparent !important;
  color: #005eb8 !important;
  display: grid !important;
  font-size: var(--sav-quote-margin-font-size) !important;
  font-weight: 800 !important;
  gap: 1px !important;
  grid-column: 2 !important;
  justify-items: end !important;
  line-height: 1 !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  position: static !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-line-margin-badge span {
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-row-drag-handle {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6dee9 !important;
  border-radius: 6px !important;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.1) !important;
  color: #607086 !important;
  cursor: grab !important;
  display: inline-flex !important;
  height: 24px !important;
  justify-content: center !important;
  left: -23px !important;
  min-height: 24px !important;
  opacity: 0.88 !important;
  padding: 0 !important;
  position: absolute !important;
  top: 50% !important;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, color 0.14s ease, opacity 0.14s ease !important;
  transform: translateY(-50%) !important;
  width: 18px !important;
  z-index: 25 !important;
}

.sav-quote-document-host .sav-row-drag-handle::before {
  background: currentColor !important;
  background-image: none !important;
  border-radius: 50% !important;
  box-shadow: 5px 0 0 currentColor, 0 5px 0 currentColor, 5px 5px 0 currentColor, 0 10px 0 currentColor, 5px 10px 0 currentColor !important;
  content: "" !important;
  height: 2px !important;
  transform: translate(-2.5px, -5px) !important;
  width: 2px !important;
}

.sav-quote-document-host .sav-section-drag-handle,
.sav-quote-document-host .sav-row-drag-handle {
  touch-action: none !important;
  user-select: none !important;
}

.sav-quote-document-host .sav-section-drag-handle:hover,
.sav-quote-document-host .sav-section-drag-handle:focus-visible,
.sav-quote-document-host .sav-row-drag-handle:hover,
.sav-quote-document-host .sav-row-drag-handle:focus-visible,
.sav-quote-document-host .sav-service-section.is-row-dragging .sav-section-drag-handle,
.sav-quote-document-host .sav-service-line.is-row-dragging .sav-row-drag-handle {
  border-color: #9db4d2 !important;
  box-shadow: 0 2px 7px rgba(31, 73, 125, 0.16) !important;
  color: #315b8a !important;
  opacity: 1 !important;
  outline: 2px solid rgba(49, 91, 138, 0.12) !important;
}

.sav-service-drag-active,
.sav-service-drag-active * {
  cursor: grabbing !important;
}

.sav-quote-document-host .sav-service-rows.is-service-row-dragging {
  position: relative !important;
}

.sav-quote-document-host .sav-service-drop-indicator {
  background: var(--sav-accent) !important;
  border-radius: 999px !important;
  box-shadow: 0 0 0 3px var(--sav-accent-shadow-soft) !important;
  display: block !important;
  height: 2px !important;
  margin: -1px 0 !important;
  pointer-events: none !important;
  position: relative !important;
  width: 100% !important;
  z-index: 80 !important;
}

.sav-quote-document-host .sav-service-drop-indicator::before {
  background: var(--sav-accent) !important;
  border-radius: 999px !important;
  content: "" !important;
  height: 8px !important;
  left: -4px !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 8px !important;
}

.sav-quote-document-host .sav-service-section.is-service-drag-group,
.sav-quote-document-host .sav-service-line.is-service-drag-group,
.sav-quote-document-host .sav-service-line-media.is-service-drag-group,
.sav-quote-document-host .sav-service-subtotal.is-service-drag-group {
  background: color-mix(in srgb, var(--sav-accent) 5%, #ffffff) !important;
  box-shadow: inset 3px 0 0 var(--sav-accent) !important;
  opacity: 0.78 !important;
  pointer-events: none !important;
}

.sav-quote-document-host .sav-service-section.is-section-drop-target,
.sav-quote-document-host .sav-service-line.is-line-drop-target {
  background: color-mix(in srgb, var(--sav-accent) 3%, #ffffff) !important;
}

.sav-quote-document-host .sav-row-actions {
  align-items: center !important;
  background: rgba(255, 255, 255, 0.97) !important;
  border-radius: 999px !important;
  box-shadow: 0 12px 28px rgba(14, 35, 64, 0.14) !important;
  display: inline-flex !important;
  gap: 3px !important;
  left: calc(100% + 10px) !important;
  max-width: none !important;
  opacity: 0 !important;
  padding: 4px !important;
  pointer-events: none !important;
  position: absolute !important;
  right: auto !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  transition: opacity 0.12s ease, visibility 0.12s ease !important;
  visibility: hidden !important;
  z-index: 2147482150 !important;
}

.sav-quote-document-host .sav-row-actions.is-panel-safe {
  left: var(--sav-row-actions-safe-left, 4px) !important;
  right: auto !important;
}

.sav-quote-document-host .sav-row-actions.is-panel-safe::before {
  display: none !important;
}

.sav-quote-document-host .sav-row-actions::before {
  bottom: -12px !important;
  content: "" !important;
  display: block !important;
  left: -14px !important;
  position: absolute !important;
  top: -12px !important;
  width: 14px !important;
}

.sav-quote-document-host .sav-service-line:hover .sav-row-actions,
.sav-quote-document-host .sav-service-line:focus-within .sav-row-actions,
.sav-quote-document-host .sav-row-actions:hover,
.sav-quote-document-host .sav-service-line.is-row-dragging .sav-row-actions {
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

.sav-quote-document-host .sav-row-actions button {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #dbe3ee !important;
  border-radius: 999px !important;
  color: #0e2340 !important;
  display: inline-flex !important;
  font-size: 9px !important;
  height: 19px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 19px !important;
  padding: 0 !important;
  width: 19px !important;
}

.sav-quote-document-host .sav-row-actions button[data-service-action="import-media"] {
  color: #005eb8 !important;
}

.sav-quote-document-host .sav-row-actions .sav-row-action-icon {
  display: block !important;
  fill: none !important;
  height: 10.5px !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 2 !important;
  width: 10.5px !important;
}

.sav-quote-document-host .sav-row-actions button[data-service-action="delete"] {
  color: #e30613 !important;
}

.sav-quote-document-host .sav-row-actions button:hover,
.sav-quote-document-host .sav-row-actions button:focus-visible {
  background: color-mix(in srgb, var(--sav-accent) 9%, #ffffff) !important;
  border-color: var(--sav-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sav-accent) 13%, transparent) !important;
  color: var(--sav-accent) !important;
  outline: none !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only {
  align-items: stretch !important;
  background: #ffffff !important;
  border-left: 0 !important;
  height: auto !important;
  min-height: 34px !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only::before {
  content: none !important;
  display: none !important;
}

.sav-quote-document-host .sav-service-section .sav-section-drag-handle,
.sav-quote-document-host .sav-service-line .sav-row-drag-handle {
  top: 50% !important;
  transform: translateY(-50%) !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > input:first-of-type {
  border-left: 0 !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > input[data-field="lineNumber"] {
  border-left: 0 !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > textarea.sav-description-control {
  color: #3f3f46 !important;
  font-size: 10.6px !important;
  font-weight: 400 !important;
  height: auto !important;
  line-height: 1.28 !important;
  min-height: 34px !important;
  padding: 9px 10px !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > .sav-fees-description-editor {
  color: #525252 !important;
  font-size: 10.8px !important;
  font-weight: 400 !important;
  height: auto !important;
  line-height: 1.22 !important;
  min-height: 34px !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > input,
.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > .sav-fees-description-editor,
.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > .sav-client-unit,
.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > .sav-amount-stack {
  height: auto !important;
  min-height: 34px !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > input[data-field="supplierUnitPriceHT"] {
  background: var(--sav-quote-soft-blue) !important;
  color: #005eb8 !important;
}

.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > input[data-field="supplierUnitPriceHT"],
.sav-quote-document-host .sav-service-line.sav-fees-line.sav-edit-only > input[data-field="marginValue"] {
  border-left: 1px solid #dbe3ee !important;
}

.sav-fees-description {
  color: #525252 !important;
  display: grid !important;
  gap: 7px !important;
  font-size: 10.8px !important;
  line-height: 1.26 !important;
  text-align: left !important;
  white-space: normal !important;
}

.sav-fees-description-intro {
  display: grid !important;
  gap: 2px !important;
}

.sav-fees-description ul {
  display: grid !important;
  gap: 2px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sav-fees-description li {
  display: grid !important;
  gap: 2px !important;
}

.sav-fees-description li strong {
  color: #444444 !important;
  font-size: 10.8px !important;
  font-weight: 800 !important;
}

.sav-fees-description li span {
  color: #666666 !important;
  font-size: 10.8px !important;
}

.sav-service-totals,
.sav-client-totals,
.sav-global-summary-totals,
.sav-service-subtotal-totals {
  display: grid !important;
  gap: 3px !important;
  justify-content: end !important;
  margin: 4px 0 0 auto !important;
  max-width: 452px !important;
  padding-top: 7px !important;
  width: min(452px, 100%) !important;
}

.sav-service-totals span,
.sav-client-totals span,
.sav-global-summary-totals span,
.sav-service-subtotal-totals span {
  align-items: baseline !important;
  color: #111827 !important;
  display: grid !important;
  font-size: 8.6px !important;
  gap: 14px !important;
  grid-template-columns: minmax(0, 1fr) minmax(142px, max-content) !important;
  line-height: 1.08 !important;
  text-align: right !important;
}

.sav-service-totals strong,
.sav-client-totals strong,
.sav-global-summary-totals strong,
.sav-service-subtotal-totals strong {
  font-size: 9px !important;
  font-weight: 800 !important;
  justify-self: end !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-service-totals .sav-margin-metric,
.sav-global-summary-totals .sav-margin-metric,
.sav-service-subtotal-totals .sav-margin-metric,
.sav-line-margin-badge {
  color: #005eb8 !important;
}

.sav-quote-document-host .sav-service-subtotal {
  margin: 5px 0 18px !important;
  overflow: visible !important;
  position: relative !important;
}

.sav-quote-document-host .sav-service-subtotal > .sav-subtotal-delete,
.sav-quote-document-host .sav-service-subtotal > button[data-service-action="delete-subtotal"] {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid rgba(227, 6, 19, 0.55) !important;
  border-radius: 999px !important;
  color: #e30613 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  height: 18px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 18px !important;
  opacity: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  right: -9px !important;
  top: -9px !important;
  transform: none !important;
  transition: opacity 0.12s ease, visibility 0.12s ease !important;
  visibility: hidden !important;
  width: 18px !important;
  z-index: 42 !important;
}

.sav-quote-document-host .sav-service-subtotal:hover > .sav-subtotal-delete,
.sav-quote-document-host .sav-service-subtotal:focus-within > .sav-subtotal-delete,
.sav-quote-document-host .sav-service-subtotal > .sav-subtotal-delete:focus,
.sav-quote-document-host .sav-service-subtotal:hover > button[data-service-action="delete-subtotal"],
.sav-quote-document-host .sav-service-subtotal:focus-within > button[data-service-action="delete-subtotal"],
.sav-quote-document-host .sav-service-subtotal > button[data-service-action="delete-subtotal"]:focus {
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

.sav-service-totals .sav-total-ttc,
.sav-client-totals .sav-total-ttc,
.sav-global-summary-totals .sav-total-ttc {
  font-weight: 800 !important;
}

/* Editor only: frame the global total like the other editable document tables. */
.sav-quote-document-host:not(.sav-print-client-view) .sav-summary-block .sav-global-summary {
  background: #ffffff !important;
  border: 1px solid var(--sav-quote-border) !important;
  border-radius: 5px !important;
  padding: 14px 14px 12px !important;
}

.sav-payment-schedule,
.sav-payment-export {
  background: #ffffff !important;
  border: 1px solid var(--sav-quote-border) !important;
  border-radius: 5px !important;
  display: grid !important;
  gap: 0 !important;
  padding: 14px 14px 12px !important;
}

.quote-editor-shell .sav-export-only {
  display: none !important;
}

.sav-payment-schedule > strong,
.sav-payment-export > strong {
  color: #111827 !important;
  display: inline-block !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  margin: 0 0 12px !important;
  text-decoration: underline !important;
}

.sav-payment-header,
.sav-payment-line,
.sav-payment-total {
  align-items: center !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 68px 118px 118px 30px !important;
  min-height: 29px !important;
}

.sav-payment-export-header,
.sav-payment-export-line {
  align-items: center !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 68px 118px 118px !important;
  min-height: 29px !important;
}

.sav-payment-header,
.sav-payment-export-header {
  border-bottom: 1px solid var(--sav-quote-border) !important;
  color: #344054 !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
}

.sav-payment-line,
.sav-payment-export-line {
  border-bottom: 1px solid #dbe3ee !important;
}

.sav-payment-line input,
.sav-payment-line span,
.sav-payment-total span,
.sav-payment-total strong,
.sav-payment-export-line span,
.sav-payment-export-line strong {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #344054 !important;
  display: flex !important;
  font-size: 8.7px !important;
  height: 100% !important;
  line-height: 1.08 !important;
  padding: 0 4px !important;
}

.sav-payment-line input[data-field="label"],
.sav-payment-export-line span:first-child,
.sav-payment-total-label {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-payment-header span:nth-child(n + 2),
.sav-payment-line input[data-field="percent"],
.sav-payment-line span,
.sav-payment-total strong,
.sav-payment-export-header span:nth-child(n + 2),
.sav-payment-export-line strong {
  justify-content: flex-end !important;
  text-align: right !important;
}

.sav-payment-line.is-key-phase input[data-field="label"],
.sav-payment-export-line.is-key-phase span:first-child {
  color: #111827 !important;
  font-weight: 800 !important;
}

.sav-payment-delete {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid rgba(227, 6, 19, 0.24) !important;
  border-radius: 999px !important;
  color: #e30613 !important;
  display: inline-flex !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  height: 20px !important;
  justify-content: center !important;
  justify-self: end !important;
  line-height: 1 !important;
  min-height: 20px !important;
  padding: 0 !important;
  place-self: center end !important;
  width: 20px !important;
}

.sav-payment-add {
  align-items: center !important;
  background: var(--sav-accent) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 14px 28px var(--sav-accent-shadow-strong) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  height: 56px !important;
  justify-content: center !important;
  justify-self: start !important;
  line-height: 1 !important;
  margin: 24px 0 0 -10px !important;
  min-height: 56px !important;
  padding: 0 0 3px !important;
  width: 56px !important;
}

.sav-payment-add:disabled,
.sav-payment-add[hidden] {
  display: none !important;
}

.sav-quote-document-host .sav-fees-line-toolbar {
  align-items: center !important;
  background: #ffffff !important;
  border-bottom: 1px solid #dbe3ee !important;
  display: flex !important;
  justify-content: flex-end !important;
  min-height: 24px !important;
  padding: 3px 4px !important;
}

.sav-quote-document-host .sav-fees-add-line-button {
  margin: 0 !important;
}

.sav-quote-document-host .sav-service-line-media {
  background: #ffffff !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 8px !important;
  margin: 6px 0 8px !important;
  padding: 8px 0 !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-line-media-figure {
  align-items: center !important;
  background: #ffffff !important;
  display: flex !important;
  justify-content: center !important;
  margin: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  position: relative !important;
}

.sav-quote-document-host .sav-line-media-figure img {
  display: block !important;
  height: auto !important;
  max-height: 420px !important;
  max-width: 100% !important;
  object-fit: contain !important;
  width: auto !important;
}

/* 2026-06-09: EOF Factures cascade guard, after every shared Achats rule. */
.sav-client-invoice-panel .project-add-invoice {
  align-items: center !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  gap: 6px !important;
  height: 28px !important;
  justify-content: center !important;
  min-width: 88px !important;
  padding: 0 10px !important;
  white-space: nowrap !important;
}

.sav-client-invoice-panel .project-add-invoice svg {
  flex: 0 0 14px !important;
  height: 14px !important;
  width: 14px !important;
}

.sav-client-invoice-panel .purchase-grid-row,
.sav-client-invoice-panel .invoice-summary,
.sav-client-invoice-panel .sav-invoice-total-ttc-cell,
.sav-client-invoice-panel .purchase-total,
.sav-client-invoice-panel .purchase-rests {
  font-size: clamp(9px, 0.76cqw, 11.2px) !important;
  line-height: 1.08 !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select select {
  appearance: none !important;
  -webkit-appearance: none !important;
  border-radius: 7px !important;
  font-size: 8px !important;
  font-weight: 600 !important;
  height: 18px !important;
  line-height: 1 !important;
  min-height: 18px !important;
  padding: 0 4px !important;
  text-align: center !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select.sav-client-invoice-status-draft select {
  background-color: #fff5f5 !important;
  border-color: rgba(227, 6, 19, 0.35) !important;
  color: var(--sav-red) !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select.sav-client-invoice-status-sent select {
  background-color: #eff6ff !important;
  border-color: rgba(0, 94, 184, 0.35) !important;
  color: var(--sav-blue) !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select.sav-client-invoice-status-paid select {
  background-color: #f0fdf4 !important;
  border-color: rgba(22, 163, 74, 0.35) !important;
  color: #15803d !important;
}

/* Native select painting differs by browser; color the Factures status pill itself. */
.sav-client-invoice-panel .sav-client-invoice-status-select {
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  padding: 1px 3px !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select select {
  background: transparent !important;
  border-color: transparent !important;
  color: inherit !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select.sav-client-invoice-status-draft {
  background-color: #fff5f5 !important;
  border-color: rgba(227, 6, 19, 0.35) !important;
  color: var(--sav-red) !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select.sav-client-invoice-status-sent {
  background-color: #eff6ff !important;
  border-color: rgba(0, 94, 184, 0.35) !important;
  color: var(--sav-blue) !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select.sav-client-invoice-status-paid {
  background-color: #f0fdf4 !important;
  border-color: rgba(22, 163, 74, 0.35) !important;
  color: #15803d !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select {
  position: relative !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-value {
  align-items: center !important;
  display: flex !important;
  font-size: 8px !important;
  font-weight: 600 !important;
  grid-column: 2 !important;
  height: 18px !important;
  justify-content: center !important;
  line-height: 1 !important;
  pointer-events: none !important;
  text-align: center !important;
  width: 100% !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select select {
  inset: 0 !important;
  opacity: 0 !important;
  position: absolute !important;
  width: 100% !important;
}

/* 2026-06-09: Factures uses dynamic invoice columns. Keep it out of fixed Achat responsive placement rules. */
.sav-client-invoice-panel .purchase-grid-header,
.sav-client-invoice-panel .purchase-grid-row,
.sav-client-invoice-panel .purchase-row-details {
  display: grid !important;
  grid-template-columns: var(--purchase-grid-columns) !important;
}

.sav-client-invoice-panel .purchase-row-details {
  align-items: start !important;
  gap: 4px !important;
  min-height: 0 !important;
  padding: 6px 10px 10px !important;
}

.sav-client-invoice-panel .purchase-grid-row > *,
.sav-client-invoice-panel .purchase-row-details > * {
  grid-column: auto !important;
  grid-row: auto !important;
  min-width: 0 !important;
}

.sav-client-invoice-panel .purchase-grid-row > .invoice-summary,
.sav-client-invoice-panel .purchase-grid-row > .purchase-total,
.sav-client-invoice-panel .purchase-grid-row > .purchase-rests,
.sav-client-invoice-panel .purchase-grid-row > .row-expand {
  grid-column: auto !important;
  grid-row: auto !important;
}

.sav-client-invoice-panel .purchase-row-project-slot,
.sav-client-invoice-panel .details-spacer {
  display: block !important;
}

.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;
}

.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;
}

.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;
}

.sav-client-invoice-panel .sav-client-invoice-detail-cell input,
.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;
}

.sav-client-invoice-panel .sav-client-invoice-status-value {
  font-size: 8px !important;
  font-weight: 500 !important;
}

/* 2026-06-11: search controls for Clients, Projets and Devis lists. */
.sav-tab-search-control {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d7dde6 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  display: inline-flex !important;
  flex: 0 1 280px !important;
  gap: 0 !important;
  height: 32px !important;
  margin-left: auto !important;
  max-width: 320px !important;
  min-width: 220px !important;
  order: 80 !important;
  padding: 0 12px !important;
}

.sav-tab-search-control span {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

.sav-tab-search-control input {
  background: transparent !important;
  border: 0 !important;
  color: #0f172a !important;
  flex: 1 1 auto !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  height: 30px !important;
  min-width: 0 !important;
  outline: 0 !important;
}

.sav-tab-search-control input::placeholder {
  color: #64748b !important;
  font-weight: 300 !important;
}

.sav-tab-search-hidden {
  display: none !important;
}

@media (max-width: 760px) {
  .sav-tab-export-action-row {
    flex-wrap: wrap !important;
  }

  .sav-tab-search-control {
    flex-basis: 100% !important;
    margin-left: 0 !important;
    max-width: none !important;
    width: 100% !important;
  }
}

/* 2026-06-11: user profile and admin maintenance mode. */
.sav-maintenance-settings-row {
  align-items: center !important;
  border: 1px solid rgba(14, 35, 64, 0.12) !important;
  border-radius: 8px !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  min-height: 38px !important;
  padding: 6px 8px 6px 10px !important;
}

.sav-maintenance-settings-row.is-active {
  background: #fff7ed !important;
  border-color: #fed7aa !important;
}

.sav-maintenance-settings-row strong {
  color: #0e2340 !important;
  display: block !important;
  font-size: 12px !important;
}

.sav-maintenance-settings-row small {
  color: #64748b !important;
  display: block !important;
  font-size: 10px !important;
  margin-top: 1px !important;
}

.sav-maintenance-toggle-button {
  background: #0e2340 !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  min-height: 28px !important;
  padding: 0 12px !important;
}

.sav-maintenance-toggle-button.is-active {
  background: var(--sav-accent) !important;
}

.sav-maintenance-toggle-button:disabled {
  background: #cbd5e1 !important;
  cursor: not-allowed !important;
}

.sav-user-profile-button {
  align-items: center !important;
  background: #f8fafc !important;
  border: 2px solid #ffffff !important;
  border-radius: 999px !important;
  box-shadow: 0 12px 28px rgba(14, 35, 64, 0.2) !important;
  color: #64748b !important;
  display: inline-flex !important;
  height: 30px !important;
  justify-content: center !important;
  overflow: hidden !important;
  position: fixed !important;
  right: 96px !important;
  top: 22px !important;
  width: 30px !important;
  z-index: 2147482000 !important;
}

.sav-user-profile-button.is-admin {
  color: #005eb8 !important;
}

.sav-user-profile-button img,
.sav-user-profile-avatar-large img {
  height: 100% !important;
  object-fit: cover !important;
  width: 100% !important;
}

.sav-user-profile-button span {
  font-size: 10px !important;
  font-weight: 800 !important;
}

.sav-user-profile-backdrop,
.sav-maintenance-gate {
  align-items: center !important;
  background: rgba(14, 35, 64, 0.52) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 20px !important;
  position: fixed !important;
  z-index: 2147483000 !important;
}

.sav-user-profile-dialog,
.sav-maintenance-gate > div {
  background: #ffffff !important;
  border-radius: 8px !important;
  box-shadow: 0 24px 72px rgba(14, 35, 64, 0.28) !important;
  color: #0e2340 !important;
  display: grid !important;
  gap: 16px !important;
  max-width: 420px !important;
  padding: 20px !important;
  width: min(420px, 100%) !important;
}

.sav-user-profile-header {
  align-items: center !important;
  display: flex !important;
  justify-content: space-between !important;
}

.sav-user-profile-header button,
.sav-user-profile-actions button {
  border: 1px solid rgba(14, 35, 64, 0.12) !important;
  border-radius: 999px !important;
  min-height: 32px !important;
  padding: 0 12px !important;
}

.sav-user-profile-preview {
  align-items: center !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: 64px minmax(0, 1fr) !important;
}

.sav-user-profile-avatar-large {
  align-items: center !important;
  background: #f1f5f9 !important;
  border-radius: 999px !important;
  color: #005eb8 !important;
  display: flex !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  height: 64px !important;
  justify-content: center !important;
  overflow: hidden !important;
  width: 64px !important;
}

.sav-user-profile-upload {
  display: grid !important;
  gap: 8px !important;
}

.sav-user-profile-upload span,
.sav-user-profile-preview small {
  color: #64748b !important;
  font-size: 12px !important;
}

.sav-maintenance-gate {
  text-align: center !important;
}

.sav-maintenance-gate strong {
  color: #e30613 !important;
  font-size: 22px !important;
}

.sav-maintenance-gate p {
  color: #0e2340 !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

.sav-dashboard-margin-breakdown {
  display: grid !important;
  gap: 32px !important;
  padding: 14px 8px 0 !important;
}

.sav-dashboard-margin-breakdown-row {
  align-items: center !important;
  display: grid !important;
  gap: 18px !important;
  grid-template-columns: minmax(150px, 0.35fr) minmax(180px, 1fr) 88px !important;
}

.sav-dashboard-margin-breakdown-row span {
  color: #111827 !important;
  font-size: 16px !important;
  font-weight: 400 !important;
}

.sav-dashboard-margin-breakdown-row div {
  background: #edf1f6 !important;
  border-radius: 999px !important;
  height: 18px !important;
  overflow: hidden !important;
  position: relative !important;
}

.sav-dashboard-margin-breakdown-row i {
  background: var(--c) !important;
  border-radius: inherit !important;
  display: block !important;
  height: 100% !important;
  min-width: 14px !important;
  width: var(--w) !important;
}

.sav-dashboard-margin-breakdown-row strong {
  color: #0f172a !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  text-align: right !important;
}

@media (max-width: 760px) {
  .sav-dashboard-margin-breakdown-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .sav-dashboard-margin-breakdown-row strong {
    text-align: left !important;
  }
}

@media print {
  .sav-user-profile-button,
  .sav-user-profile-backdrop,
  .sav-maintenance-gate {
    display: none !important;
  }
}

/* The PDF route uses the exact quote-editor document tree (WYSIWYG). */
body.sav-offer-print-route.sav-offer-print-wysiwyg,
body.sav-offer-print-route.sav-offer-print-wysiwyg #root {
  background: #e8edf4 !important;
  margin: 0 !important;
  min-height: 100% !important;
  padding: 0 !important;
}

.sav-wysiwyg-print-root {
  box-sizing: border-box !important;
  display: flex !important;
  justify-content: center !important;
  min-height: 100vh !important;
  padding: 24px !important;
  width: 100% !important;
}

.sav-quote-preview-shell.sav-wysiwyg-print-shell {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: block !important;
  height: auto !important;
  max-width: none !important;
  overflow: visible !important;
  width: var(--sav-page-width, 794px) !important;
}

.sav-quote-preview-shell.sav-wysiwyg-print-shell .sav-wysiwyg-print-canvas {
  background: transparent !important;
  display: block !important;
  overflow: visible !important;
  padding: 0 !important;
}

.sav-quote-preview-shell.sav-wysiwyg-print-shell .sav-wysiwyg-print-page {
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18) !important;
  margin: 0 !important;
}

.sav-wysiwyg-print-shell .sav-document-insert-control,
.sav-wysiwyg-print-shell .sav-flow-delete-button,
.sav-wysiwyg-print-shell .sav-block-grip,
.sav-wysiwyg-print-shell .sav-edit-only,
.sav-wysiwyg-print-shell .sav-internal {
  display: none !important;
}

.sav-wysiwyg-print-shell .sav-services-client-table.sav-export-only {
  background: #ffffff !important;
  border: 1px solid var(--sav-quote-border) !important;
  display: block !important;
  overflow: visible !important;
  width: 100% !important;
}

.sav-wysiwyg-print-shell .sav-services-client-table {
  --sav-service-export-grid: 52px minmax(0, 1fr) 42px 36px 76px 112px;
}

.sav-wysiwyg-print-shell .sav-services-kind-savillsFees .sav-services-client-table {
  --sav-service-export-grid: 42px minmax(0, 1fr) 38px 30px 76px 104px;
}

.sav-wysiwyg-print-shell .sav-service-export-header,
.sav-wysiwyg-print-shell .sav-service-export-line {
  align-items: stretch !important;
  border-bottom: 1px solid #dbe3ee !important;
  display: grid !important;
  grid-template-columns: var(--sav-service-export-grid) !important;
  width: 100% !important;
}

.sav-wysiwyg-print-shell .sav-service-export-header {
  background: #f8fafc !important;
  color: #344054 !important;
  min-height: 24px !important;
}

.sav-wysiwyg-print-shell .sav-service-export-header > strong,
.sav-wysiwyg-print-shell .sav-service-export-line > span,
.sav-wysiwyg-print-shell .sav-service-export-line > strong {
  align-items: center !important;
  box-sizing: border-box !important;
  display: flex !important;
  font-size: var(--sav-quote-line-font-size) !important;
  line-height: 1.12 !important;
  min-height: 24px !important;
  padding: 3px 5px !important;
}

.sav-wysiwyg-print-shell .sav-service-export-header > strong {
  font-size: var(--sav-quote-header-font-size) !important;
  font-weight: 700 !important;
  justify-content: center !important;
}

.sav-wysiwyg-print-shell .sav-service-export-header > strong:nth-child(2),
.sav-wysiwyg-print-shell .sav-service-export-line > span:nth-child(2) {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-wysiwyg-print-shell .sav-service-export-header > strong:nth-child(n + 3),
.sav-wysiwyg-print-shell .sav-service-export-line > span:nth-child(n + 3),
.sav-wysiwyg-print-shell .sav-service-export-line > strong {
  justify-content: flex-end !important;
  text-align: right !important;
}

.sav-wysiwyg-print-shell .sav-service-export-section {
  box-sizing: border-box !important;
  color: #111827 !important;
  display: block !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  margin: 4px 0 2px !important;
  padding: 2px 5px !important;
}

.sav-wysiwyg-print-shell .sav-client-totals.sav-export-only,
.sav-wysiwyg-print-shell .sav-payment-export.sav-export-only {
  display: grid !important;
}

.sav-wysiwyg-print-shell .sav-service-subtotal.sav-export-only {
  display: grid !important;
}

.sav-wysiwyg-print-shell .sav-service-line-media.sav-export-only {
  display: grid !important;
  margin: 6px 0 8px 52px !important;
  max-width: calc(100% - 94px) !important;
  width: calc(100% - 94px) !important;
}

@media print {
  @page {
    size: A4;
    margin: 0;

    @top-right {
      content: "";
    }

    @bottom-center {
      content: "";
    }

    @bottom-right {
      content: "";
    }
  }

  html.sav-offer-print-html,
  body.sav-offer-print-route.sav-offer-print-wysiwyg,
  body.sav-offer-print-route.sav-offer-print-wysiwyg #root,
  .sav-wysiwyg-print-root,
  .sav-quote-preview-shell.sav-wysiwyg-print-shell,
  .sav-quote-preview-shell.sav-wysiwyg-print-shell .sav-wysiwyg-print-canvas {
    background: #ffffff !important;
    border: 0 !important;
    box-shadow: none !important;
    display: block !important;
    height: auto !important;
    margin: 0 !important;
    max-height: none !important;
    max-width: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    width: 794px !important;
  }

  .sav-quote-preview-shell.sav-wysiwyg-print-shell .sav-wysiwyg-print-page {
    border: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    overflow: visible !important;
    width: 794px !important;
  }

  .sav-wysiwyg-print-shell .sav-page-surface {
    border: 0 !important;
    box-shadow: none !important;
  }

  .sav-wysiwyg-print-shell,
  .sav-wysiwyg-print-shell * {
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
}

/* 2026-07-14: Factures mirrors Achats while grouping every signed quote by project. */
.sav-client-invoice-panel .sav-client-invoice-project {
  border-bottom: 1px solid #e4e9f1 !important;
}

.sav-client-invoice-panel .sav-client-invoice-project:last-child {
  border-bottom: 0 !important;
}

.sav-client-invoice-panel .purchase-project-header {
  grid-template-columns: 34px minmax(150px, 1.2fr) minmax(0, 5.8fr) !important;
  min-height: 58px !important;
}

.sav-client-invoice-project-icon {
  align-items: center !important;
  background: #f1f5f9 !important;
  border-radius: 9px !important;
  color: #52606f !important;
  display: inline-flex !important;
  height: 30px !important;
  justify-content: center !important;
  width: 30px !important;
}

.sav-client-invoice-project-icon svg {
  height: 17px !important;
  width: 17px !important;
}

.sav-client-invoice-panel .project-metric-paid strong {
  color: #137333 !important;
}

.sav-client-invoice-project-records .sav-client-invoice-record + .sav-client-invoice-record {
  border-top: 1px solid #edf1f6 !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell {
  align-items: center !important;
  gap: 8px !important;
  justify-content: space-between !important;
  overflow: visible !important;
  white-space: normal !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell > span {
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell small {
  color: #137333 !important;
  font-size: 8px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell strong {
  color: #1f2937 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-client-invoice-row-add {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #cfd7e3 !important;
  border-radius: 999px !important;
  color: #344054 !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  font-size: 8px !important;
  font-weight: 600 !important;
  gap: 3px !important;
  height: 22px !important;
  padding: 0 7px !important;
}

.sav-client-invoice-row-add:hover:not(:disabled) {
  border-color: var(--sav-accent) !important;
  color: var(--sav-accent) !important;
}

.sav-client-invoice-row-add:disabled {
  cursor: default !important;
  opacity: 0.42 !important;
}

.sav-client-invoice-row-add svg {
  height: 11px !important;
  width: 11px !important;
}

.sav-client-invoice-panel .sav-invoice-total-ttc-input[readonly] {
  background: transparent !important;
  border-color: transparent !important;
  color: #111827 !important;
  cursor: default !important;
  font-weight: 600 !important;
  pointer-events: none !important;
}

.sav-client-invoice-modal {
  max-width: min(500px, calc(100vw - 32px)) !important;
}

.sav-client-invoice-modal-intro {
  background: #f8fafc;
  border: 1px solid #e0e6ef;
  border-radius: 12px;
  display: grid;
  gap: 3px;
  padding: 11px 12px;
}

.sav-client-invoice-modal-intro strong {
  color: #344054;
  font-size: 12px;
  font-weight: 600;
}

.sav-client-invoice-modal-intro span {
  color: #667085;
  font-size: 12px;
  line-height: 1.45;
}

.sav-client-invoice-modal-state {
  background: #f8fafc !important;
  border: 1px solid #dce4ee !important;
  border-radius: 10px !important;
  color: #526174 !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  padding: 10px 12px !important;
}

.sav-client-invoice-modal-state.is-loading {
  border-left: 3px solid #1a73e8 !important;
}

.sav-client-invoice-modal-state.is-empty {
  background: #fff8e7 !important;
  border-color: #f2d58a !important;
  color: #8a4f00 !important;
}

.sav-client-invoice-modal-state.is-error {
  background: #fce8e6 !important;
  border-color: #f2b8b5 !important;
  color: #b3261e !important;
}

.sav-client-invoice-modal-summary {
  background: #f8fafc !important;
  border: 1px solid #e0e6ef !important;
  border-radius: 12px !important;
  display: grid !important;
  gap: 8px !important;
  padding: 12px !important;
}

.sav-client-invoice-modal-summary > div:first-child,
.sav-client-invoice-modal-quote-list > .sav-client-invoice-modal-quote {
  align-items: center !important;
  display: flex !important;
  justify-content: space-between !important;
}

.sav-client-invoice-modal-summary > div:first-child span,
.sav-client-invoice-modal-summary p {
  color: #667085 !important;
  font-size: 12px !important;
  margin: 0 !important;
}

.sav-client-invoice-modal-summary > div:first-child strong {
  color: #137333 !important;
  font-size: 18px !important;
}

.sav-client-invoice-modal-summary.is-empty > div:first-child strong {
  color: #b54708 !important;
}

.sav-client-invoice-modal-quote-list {
  border-top: 1px solid #e0e6ef !important;
  display: grid !important;
  gap: 6px !important;
  padding-top: 8px !important;
}

.sav-client-invoice-modal-quote-list > .sav-client-invoice-modal-quote {
  background: #ffffff !important;
  border: 1px solid #e0e6ef !important;
  border-radius: 9px !important;
  color: #344054 !important;
  cursor: pointer !important;
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  min-height: 46px !important;
  padding: 7px 9px !important;
}

.sav-client-invoice-modal-quote-list > .sav-client-invoice-modal-quote.is-existing {
  background: #f4f6f8 !important;
  cursor: default !important;
  opacity: 0.72 !important;
}

.sav-client-invoice-modal-quote > input {
  accent-color: var(--sav-accent) !important;
  height: 16px !important;
  margin: 0 !important;
  width: 16px !important;
}

.sav-client-invoice-modal-quote > span {
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
  text-transform: none !important;
}

.sav-client-invoice-modal-quote > span strong,
.sav-client-invoice-modal-quote > span small,
.sav-client-invoice-modal-quote > b {
  font-size: 12px !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

.sav-client-invoice-modal-quote > span strong {
  color: #344054 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-client-invoice-modal-quote > span small {
  color: #667085 !important;
  font-weight: 400 !important;
}

.sav-client-invoice-modal-quote > b {
  color: #202124 !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

.sav-client-invoice-modal-quote-list {
  max-height: min(280px, 36vh) !important;
  overflow-y: auto !important;
}

.sav-client-invoice-modal-actions .action-button-primary:disabled {
  cursor: default !important;
  opacity: 0.45 !important;
}

.sav-client-invoice-panel .project-metric {
  font-size: 9px !important;
  gap: 4px !important;
}

.sav-client-invoice-panel .project-metric > span {
  color: #667085 !important;
  font-weight: 400 !important;
}

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

.sav-client-invoice-row-handle {
  align-items: center !important;
  color: #98a2b3 !important;
  display: inline-flex !important;
  justify-content: center !important;
  overflow: visible !important;
}

.sav-client-invoice-row-handle svg {
  fill: currentColor !important;
  height: 16px !important;
  width: 11px !important;
}

/* 2026-07-14: final persistence, responsive and dashboard polish. */
.sav-purchase-project-modal > label {
  display: none !important;
}

.sav-purchase-project-modal .project-modal-header {
  border-bottom: 0 !important;
  padding: 20px 26px 8px !important;
}

.sav-purchase-project-modal .project-modal-header h2 {
  font-size: 17px !important;
  gap: 0 !important;
}

.sav-purchase-project-modal .project-modal-header h2::before {
  content: none !important;
}

.sav-purchase-project-modal .sav-purchase-relation-fields {
  padding-top: 12px !important;
}

.sav-quote-document-host:not(.sav-print-client-view) .sav-flow-block.sav-text-block:not(.sav-signature-block):not(.sav-services-title-block) .sav-block-content {
  height: auto !important;
  min-height: 32px !important;
}

.sav-dashboard-panel {
  border-left: 1px solid #e2e8f0 !important;
}

.sav-dashboard-pie {
  cursor: help !important;
  transition: filter 160ms ease, transform 160ms ease !important;
}

.sav-dashboard-pie:hover {
  filter: saturate(1.12) drop-shadow(0 8px 14px rgba(15, 23, 42, 0.12)) !important;
  transform: translateY(-2px) scale(1.015) !important;
}

.sav-dashboard-pie-total {
  align-items: baseline !important;
  border-bottom: 1px solid #e2e8f0 !important;
  display: flex !important;
  justify-content: space-between !important;
  padding: 0 0 10px !important;
}

.sav-dashboard-pie-total small {
  color: #667085 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
}

.sav-dashboard-pie-total strong {
  color: #111827 !important;
  font-size: 18px !important;
  font-weight: 500 !important;
}

.sav-dashboard-pie-legend > span {
  border-radius: 7px !important;
  cursor: help !important;
  padding: 7px 8px !important;
  transition: background-color 140ms ease, transform 140ms ease !important;
}

.sav-dashboard-pie-legend > span:hover {
  background: #f8fafc !important;
  transform: translateX(3px) !important;
}

.sav-estimate-point,
.sav-real-point {
  cursor: help !important;
  transform-box: fill-box !important;
  transform-origin: center !important;
  transition: r 120ms ease, filter 120ms ease !important;
}

.sav-estimate-point:hover,
.sav-real-point:hover {
  filter: drop-shadow(0 0 1.8px currentColor) !important;
  r: 1.25px !important;
}

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

.sav-dashboard-margin-chart.is-empty > svg,
.sav-dashboard-margin-chart.is-empty > .sav-dashboard-line-axis {
  display: none !important;
}

.sav-dashboard-chart-empty {
  align-items: center !important;
  background: #f8fafc !important;
  border: 1px dashed #cfd8e5 !important;
  border-radius: 8px !important;
  color: #667085 !important;
  display: flex !important;
  font-size: 14px !important;
  justify-content: center !important;
  min-height: 190px !important;
  padding: 24px !important;
  text-align: center !important;
}

.sav-cloud-storage-panel {
  display: grid !important;
  gap: 20px !important;
}

.sav-cloud-storage-header {
  align-items: center !important;
  display: flex !important;
  gap: 20px !important;
  justify-content: space-between !important;
}

.sav-cloud-storage-header h2,
.sav-cloud-storage-header p,
.sav-cloud-storage-note {
  margin: 0 !important;
}

.sav-cloud-storage-header p,
.sav-cloud-storage-note,
.sav-cloud-storage-grid article span {
  color: #667085 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
}

.sav-cloud-storage-status {
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 8px 12px !important;
  white-space: nowrap !important;
}

.sav-cloud-storage-status.is-online {
  background: #e6f4ea !important;
  color: #137333 !important;
}

.sav-cloud-storage-status.is-offline {
  background: #fef7e0 !important;
  color: #8a4f00 !important;
}

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

.sav-cloud-storage-grid article {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  display: grid !important;
  gap: 7px !important;
  padding: 18px !important;
}

.sav-cloud-storage-grid article small {
  color: #526174 !important;
  font-size: 11px !important;
}

.sav-cloud-storage-grid article strong {
  color: #111827 !important;
  font-size: 22px !important;
  font-weight: 500 !important;
}

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

  .sav-dashboard-v2-filter-panel {
    grid-template-columns: minmax(280px, 0.8fr) minmax(430px, 1.35fr) !important;
  }

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

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

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

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

  .sav-dashboard-v2-filter-panel,
  .sav-dashboard-v2-filter-metrics,
  .sav-dashboard-v2-grid,
  .sav-cloud-storage-grid {
    grid-template-columns: 1fr !important;
  }

  .sav-dashboard-v2-filter-row {
    grid-template-columns: 1fr !important;
  }

  .sav-dashboard-pie-wrap {
    grid-template-columns: 150px minmax(0, 1fr) !important;
  }

  .sav-dashboard-pie {
    width: 140px !important;
  }

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

  .sav-cloud-storage-header {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
}

/* v121 - unified feedback for the primary add and Excel toolbar actions */
:root {
  --sav-toolbar-feedback-duration: 150ms;
  --sav-toolbar-feedback-easing: cubic-bezier(0.2, 0, 0, 1);
  --sav-excel-action: #107c41;
  --sav-excel-action-hover: #0b6b35;
  --sav-excel-action-active: #07572b;
}

#root .sav-tab-primary-add-button,
#root .sav-tab-excel-export-button {
  -webkit-tap-highlight-color: transparent !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  transition:
    background-color var(--sav-toolbar-feedback-duration) var(--sav-toolbar-feedback-easing),
    border-color var(--sav-toolbar-feedback-duration) var(--sav-toolbar-feedback-easing),
    box-shadow var(--sav-toolbar-feedback-duration) var(--sav-toolbar-feedback-easing),
    color var(--sav-toolbar-feedback-duration) var(--sav-toolbar-feedback-easing),
    transform var(--sav-toolbar-feedback-duration) var(--sav-toolbar-feedback-easing) !important;
  user-select: none !important;
  will-change: transform, box-shadow !important;
}

#root .sav-tab-primary-add-button {
  background-color: var(--sav-accent) !important;
  border: 1px solid color-mix(in srgb, var(--sav-accent) 82%, #000000) !important;
  box-shadow:
    0 2px 5px var(--sav-accent-shadow-medium),
    0 9px 22px var(--sav-accent-shadow-soft) !important;
}

#root .sav-tab-excel-export-button {
  background-color: var(--sav-excel-action) !important;
  border: 1px solid color-mix(in srgb, var(--sav-excel-action) 86%, #000000) !important;
  box-shadow:
    0 2px 5px rgba(16, 124, 65, 0.24),
    0 9px 22px color-mix(in srgb, var(--sav-accent) 10%, transparent) !important;
}

@media (hover: hover) and (pointer: fine) {
  #root .sav-tab-primary-add-button:hover {
    background-color: var(--sav-accent-hover) !important;
    border-color: color-mix(in srgb, var(--sav-accent-hover) 84%, #000000) !important;
    box-shadow:
      0 4px 9px var(--sav-accent-shadow-strong),
      0 13px 28px var(--sav-accent-shadow-medium) !important;
    transform: translate3d(0, -2px, 0) scale(1.025) !important;
  }

  #root .sav-tab-excel-export-button:hover {
    background-color: var(--sav-excel-action-hover) !important;
    border-color: color-mix(in srgb, var(--sav-excel-action-hover) 86%, #000000) !important;
    box-shadow:
      0 4px 9px rgba(11, 107, 53, 0.3),
      0 13px 28px color-mix(in srgb, var(--sav-accent) 16%, transparent) !important;
    transform: translate3d(0, -2px, 0) scale(1.025) !important;
  }
}

#root .sav-tab-primary-add-button:focus-visible,
#root .sav-tab-excel-export-button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--sav-accent) 28%, transparent) !important;
  outline-offset: 3px !important;
  transform: translate3d(0, -1px, 0) scale(1.018) !important;
}

#root .sav-tab-primary-add-button:active:not(:disabled),
#root .sav-tab-primary-add-button.is-sav-pressed:not(:disabled) {
  background-color: var(--sav-accent-hover) !important;
  box-shadow:
    0 1px 2px var(--sav-accent-shadow-medium),
    inset 0 2px 4px color-mix(in srgb, #000000 22%, transparent) !important;
  transform: translate3d(0, 1px, 0) scale(0.95) !important;
  transition-duration: 70ms !important;
}

#root .sav-tab-excel-export-button:active:not(:disabled),
#root .sav-tab-excel-export-button.is-sav-pressed:not(:disabled) {
  background-color: var(--sav-excel-action-active) !important;
  box-shadow:
    0 1px 2px rgba(7, 87, 43, 0.28),
    inset 0 2px 4px rgba(0, 0, 0, 0.24) !important;
  transform: translate3d(0, 1px, 0) scale(0.95) !important;
  transition-duration: 70ms !important;
}

#root .sav-tab-primary-add-button:disabled,
#root .sav-tab-excel-export-button:disabled,
#root .sav-tab-primary-add-button[aria-disabled="true"],
#root .sav-tab-excel-export-button[aria-disabled="true"] {
  box-shadow: none !important;
  cursor: not-allowed !important;
  opacity: 0.48 !important;
  transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
  #root .sav-tab-primary-add-button,
  #root .sav-tab-excel-export-button {
    transition-duration: 1ms !important;
  }
}

/* v118: desktop Factures primary action must remain the top physical hit
   target even while the shared toolbar is being reconciled. */
#root .sav-tab-export-strip {
  isolation: isolate !important;
  overflow: visible !important;
}

#root .sav-tab-export-strip .sav-client-invoice-add-project,
#root .sav-tab-export-strip [data-sav-client-invoice-action="open-project-modal"],
#root .sav-tab-export-strip [data-sav-tab-primary-action="factures"] {
  cursor: pointer !important;
  isolation: isolate !important;
  pointer-events: auto !important;
  position: relative !important;
  touch-action: manipulation !important;
  z-index: 40 !important;
}

#root .sav-tab-export-strip .sav-client-invoice-add-project::before,
#root .sav-tab-export-strip .sav-client-invoice-add-project::after,
#root .sav-tab-export-strip [data-sav-client-invoice-action="open-project-modal"]::before,
#root .sav-tab-export-strip [data-sav-client-invoice-action="open-project-modal"]::after,
#root .sav-tab-export-strip [data-sav-tab-primary-action="factures"]::before,
#root .sav-tab-export-strip [data-sav-tab-primary-action="factures"]::after {
  pointer-events: none !important;
}

/* v118: the margin evolution card uses the same neutral outline as the other
   Dashboard charts; no semantic blue stripe on its left edge. */
.sav-dashboard-v2-grid > [data-dashboard-chart="marginEvolution"] {
  border-left-color: #dbe3ef !important;
  border-left-width: 1px !important;
}

/* Dashboard v98: dedicated, non-redundant signed-quotes donut. */
.sav-dashboard-v2-grid > [data-dashboard-chart="quoteStatuses"] {
  container-type: inline-size !important;
}

.sav-dashboard-signed-chart {
  align-items: center !important;
  display: grid !important;
  gap: clamp(18px, 2.4vw, 30px) !important;
  grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)) !important;
  min-height: 230px !important;
  min-width: 0 !important;
  width: 100% !important;
}

.sav-dashboard-signed-donut {
  aspect-ratio: 1 !important;
  display: grid !important;
  justify-self: center !important;
  max-width: 190px !important;
  place-items: center !important;
  position: relative !important;
  width: min(190px, 100%) !important;
}

.sav-dashboard-signed-donut > svg {
  display: block !important;
  height: 100% !important;
  overflow: visible !important;
  width: 100% !important;
}

.sav-dashboard-signed-track,
.sav-dashboard-signed-segment {
  transform: rotate(-90deg) !important;
  transform-origin: 21px 21px !important;
}

.sav-dashboard-signed-segment {
  cursor: help !important;
  transition: filter 150ms ease, stroke-width 150ms ease !important;
}

.sav-dashboard-signed-segment:hover,
.sav-dashboard-signed-segment:focus-visible {
  filter: drop-shadow(0 1px 1.5px rgba(15, 23, 42, 0.24)) !important;
  outline: none !important;
  stroke-width: 8 !important;
}

.sav-dashboard-signed-center {
  align-content: center !important;
  display: grid !important;
  inset: 28% !important;
  justify-items: center !important;
  pointer-events: none !important;
  position: absolute !important;
  text-align: center !important;
}

.sav-dashboard-signed-center strong {
  color: #111827 !important;
  font-size: clamp(25px, 3cqw, 34px) !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

.sav-dashboard-signed-center span {
  color: #667085 !important;
  font-size: clamp(10px, 1.25cqw, 12px) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  margin-top: 5px !important;
  white-space: nowrap !important;
}

.sav-dashboard-signed-legend {
  align-items: center !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  cursor: help !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: 12px minmax(0, 1fr) !important;
  min-width: 0 !important;
  padding: 14px 16px !important;
  width: 100% !important;
}

.sav-dashboard-signed-legend > i {
  background: #137333 !important;
  border-radius: 999px !important;
  display: block !important;
  height: 10px !important;
  width: 10px !important;
}

.sav-dashboard-signed-legend > span {
  display: grid !important;
  gap: 4px !important;
  min-width: 0 !important;
}

.sav-dashboard-signed-legend strong,
.sav-dashboard-signed-legend small {
  display: block !important;
  line-height: 1.25 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-signed-legend strong {
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

.sav-dashboard-signed-legend small {
  color: #667085 !important;
  font-size: 11px !important;
  font-weight: 400 !important;
}

.sav-dashboard-signed-chart.is-empty {
  grid-template-columns: 1fr !important;
}

@container (max-width: 360px) {
  .sav-dashboard-signed-chart {
    grid-template-columns: 1fr !important;
    min-height: 210px !important;
  }

  .sav-dashboard-signed-donut {
    width: min(168px, 70cqw) !important;
  }
}

/* Canonical functional icons: one glyph per application feature. */
.sav-canonical-icon {
  display: block !important;
  flex: 0 0 auto !important;
  fill: currentColor !important;
  height: 18px !important;
  margin: 0 !important;
  max-height: 100% !important;
  max-width: 100% !important;
  stroke: none !important;
  transform: none !important;
  vertical-align: middle !important;
  width: 18px !important;
}

#root > div .sidebar-shell nav button,
#root > div aside nav button {
  align-items: center !important;
}

#root > div .sidebar-shell nav button > .sav-canonical-icon,
#root > div aside nav button > .sav-canonical-icon,
.sav-dashboard-metric-icon > .sav-canonical-icon {
  fill: currentColor !important;
  height: 18px !important;
  stroke: none !important;
  width: 18px !important;
}

.sav-dashboard-metric-icon {
  align-items: center !important;
  justify-content: center !important;
  line-height: 0 !important;
}

main.app-main .sav-client-invoice-empty > .sav-canonical-icon,
main.app-main .sav-entity-empty-state > .sav-canonical-icon,
main.app-main .project-empty > .sav-canonical-icon,
main.app-main .quote-empty > .sav-canonical-icon,
main.app-main .purchase-empty > .sav-canonical-icon {
  color: #5f6368 !important;
  height: 28px !important;
  margin: 0 auto 6px !important;
  width: 28px !important;
}

/* 2026-07-15: Dashboard visibility preferences in Settings. */
.sav-dashboard-settings-panel {
  display: grid !important;
  gap: 24px !important;
  padding: 28px !important;
}

.sav-dashboard-settings-header {
  align-items: center !important;
  display: flex !important;
  gap: 24px !important;
  justify-content: space-between !important;
}

.sav-dashboard-settings-header h2,
.sav-dashboard-settings-group-title h3 {
  color: #111827 !important;
  font-weight: 500 !important;
  margin: 0 !important;
}

.sav-dashboard-settings-header h2 {
  font-size: 20px !important;
}

.sav-dashboard-settings-header p,
.sav-dashboard-settings-group-title p {
  color: #667085 !important;
  font-weight: 400 !important;
  margin: 6px 0 0 !important;
}

.sav-dashboard-settings-header p {
  font-size: 13px !important;
}

.sav-dashboard-settings-header-actions {
  align-items: center !important;
  display: flex !important;
  flex: 0 0 auto !important;
  gap: 12px !important;
}

.sav-dashboard-settings-status {
  color: #667085 !important;
  font-size: 11px !important;
  min-width: 128px !important;
  text-align: right !important;
}

.sav-dashboard-settings-status[data-state="saved"] {
  color: #137333 !important;
}

.sav-dashboard-settings-status[data-state="error"] {
  color: #d93025 !important;
}

.sav-dashboard-settings-show-all {
  align-items: center !important;
  background: var(--sav-dashboard-settings-accent, #ef0000) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  height: 36px !important;
  justify-content: center !important;
  padding: 0 18px !important;
}

.sav-dashboard-settings-show-all:hover {
  filter: brightness(0.96) !important;
}

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

.sav-dashboard-settings-group {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.sav-dashboard-settings-group-title {
  align-items: center !important;
  background: #f8fafc !important;
  border-bottom: 1px solid #e6ebf2 !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: 38px minmax(0, 1fr) !important;
  padding: 18px 20px !important;
}

.sav-dashboard-settings-group-title h3 {
  font-size: 15px !important;
}

.sav-dashboard-settings-group-title p {
  font-size: 11.5px !important;
  line-height: 1.35 !important;
}

.sav-dashboard-settings-group-icon {
  align-items: center !important;
  background: #eef2ff !important;
  border-radius: 10px !important;
  color: #4f46e5 !important;
  display: inline-flex !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  height: 38px !important;
  justify-content: center !important;
  width: 38px !important;
}

.sav-dashboard-settings-group-icon svg {
  fill: none !important;
  height: 20px !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.7 !important;
  width: 20px !important;
}

.sav-dashboard-settings-list {
  display: grid !important;
  padding: 4px 20px !important;
}

.sav-dashboard-setting-option {
  align-items: center !important;
  border-bottom: 1px solid #edf1f6 !important;
  cursor: pointer !important;
  display: grid !important;
  gap: 18px !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  min-height: 68px !important;
  padding: 12px 0 !important;
  position: relative !important;
}

.sav-dashboard-setting-option:last-child {
  border-bottom: 0 !important;
}

.sav-dashboard-setting-copy {
  display: grid !important;
  gap: 4px !important;
  min-width: 0 !important;
}

.sav-dashboard-setting-copy strong {
  color: #111827 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}

.sav-dashboard-setting-copy small {
  color: #7b8798 !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}

.sav-dashboard-setting-option input {
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  width: 1px !important;
}

.sav-dashboard-setting-switch {
  background: #cbd5e1 !important;
  border-radius: 999px !important;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.05) !important;
  display: block !important;
  height: 22px !important;
  position: relative !important;
  transition: background-color 140ms ease !important;
  width: 40px !important;
}

.sav-dashboard-setting-switch::after {
  background: #ffffff !important;
  border-radius: 50% !important;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.25) !important;
  content: "" !important;
  height: 18px !important;
  left: 2px !important;
  position: absolute !important;
  top: 2px !important;
  transition: transform 140ms ease !important;
  width: 18px !important;
}

.sav-dashboard-setting-option input:checked + .sav-dashboard-setting-switch {
  background: var(--sav-dashboard-settings-accent, #ef0000) !important;
}

.sav-dashboard-setting-option input:checked + .sav-dashboard-setting-switch::after {
  transform: translateX(18px) !important;
}

.sav-dashboard-setting-option:has(input:focus-visible) .sav-dashboard-setting-switch {
  outline: 3px solid color-mix(in srgb, var(--sav-dashboard-settings-accent, #ef0000) 20%, transparent) !important;
  outline-offset: 2px !important;
}

.sav-dashboard-v2-kpis {
  container-type: inline-size !important;
  grid-template-columns: repeat(auto-fit, minmax(min(205px, 100%), 1fr)) !important;
}

.sav-dashboard-shell,
.sav-dashboard-v2-kpis,
.sav-dashboard-v2-grid,
.sav-dashboard-v2-kpis .sav-dashboard-metric,
.sav-dashboard-panel,
.sav-dashboard-panel > * {
  box-sizing: border-box !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.sav-dashboard-shell {
  overflow-x: clip !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric {
  container-type: inline-size !important;
  gap: clamp(8px, 4cqw, 12px) !important;
  grid-template-columns: clamp(32px, 2.66vw, 38px) minmax(0, 1fr) !important;
  min-height: clamp(96px, 48cqw, 112px) !important;
  overflow: visible !important;
  padding: clamp(12px, 6cqw, 16px) clamp(11px, 5cqw, 15px) !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric-icon {
  height: clamp(32px, 2.66vw, 38px) !important;
  width: clamp(32px, 2.66vw, 38px) !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric > div {
  overflow: visible !important;
  row-gap: clamp(3px, 2cqw, 5px) !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric > div > span:not(.sav-dashboard-metric-icon),
.sav-dashboard-v2-kpis .sav-dashboard-metric small {
  font-size: clamp(9.5px, 0.77vw, 11px) !important;
  line-height: 1.18 !important;
  max-width: 100% !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric strong {
  font-size: clamp(17px, 1.625vw, 26px) !important;
  line-height: 1.12 !important;
  max-width: 100% !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.sav-dashboard-v2-grid {
  gap: clamp(12px, 1.5vw, 18px) !important;
  grid-auto-flow: row dense !important;
}

.sav-dashboard-panel {
  overflow: hidden !important;
  padding: clamp(16px, 2.2vw, 28px) !important;
}

.sav-dashboard-panel h2 {
  font-size: clamp(17px, 1.55vw, 20px) !important;
  line-height: 1.25 !important;
  margin-bottom: clamp(18px, 2.2vw, 28px) !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-pie-wrap {
  gap: clamp(18px, 2.2vw, 28px) !important;
  grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)) !important;
}

.sav-dashboard-pie {
  max-width: 100% !important;
  width: min(178px, 100%) !important;
}

.sav-dashboard-pie-total,
.sav-dashboard-pie-legend > span {
  align-items: center !important;
  gap: clamp(7px, 1vw, 12px) !important;
  min-width: 0 !important;
}

.sav-dashboard-pie-total {
  flex-wrap: wrap !important;
}

.sav-dashboard-pie-legend > span {
  grid-template-columns: 16px minmax(0, 1fr) !important;
}

.sav-dashboard-pie-legend > span > small {
  grid-column: 2 !important;
  justify-self: start !important;
}

.sav-dashboard-pie-total strong,
.sav-dashboard-pie-legend b,
.sav-dashboard-pie-legend small {
  font-size: clamp(11px, 1.25vw, 16px) !important;
  line-height: 1.2 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

.sav-dashboard-line-legend {
  display: grid !important;
  gap: clamp(10px, 1.8vw, 24px) !important;
  grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)) !important;
}

.sav-dashboard-line-legend span {
  align-items: center !important;
  display: grid !important;
  font-size: clamp(12px, 1.25vw, 16px) !important;
  gap: 8px !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  line-height: 1.2 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-line-legend strong {
  display: block !important;
  font-size: clamp(12px, 1.25vw, 16px) !important;
  grid-column: 2 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-line-chart svg {
  height: clamp(155px, 20vw, 190px) !important;
  max-width: 100% !important;
}

.sav-dashboard-line-axis {
  font-size: clamp(9px, 1.1vw, 14px) !important;
  gap: 2px !important;
}

.sav-dashboard-line-axis > span {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-v2-grid > [data-dashboard-chart="quoteStatuses"] {
  grid-column: span 4 !important;
  min-height: 350px !important;
}

.sav-dashboard-v2-grid > [data-dashboard-chart="marginEvolution"] {
  grid-column: span 8 !important;
  min-height: 350px !important;
}

.sav-dashboard-v2-grid > [data-dashboard-chart="revenueEvolution"],
.sav-dashboard-v2-grid > [data-dashboard-chart="forecasts"] {
  grid-column: span 6 !important;
  min-height: 360px !important;
}

.sav-dashboard-v2-grid:not(:has([data-dashboard-chart="marginEvolution"])) > [data-dashboard-chart="quoteStatuses"],
.sav-dashboard-v2-grid:not(:has([data-dashboard-chart="quoteStatuses"])) > [data-dashboard-chart="marginEvolution"],
.sav-dashboard-v2-grid:not(:has([data-dashboard-chart="forecasts"])) > [data-dashboard-chart="revenueEvolution"],
.sav-dashboard-v2-grid:not(:has([data-dashboard-chart="revenueEvolution"])) > [data-dashboard-chart="forecasts"] {
  grid-column: 1 / -1 !important;
}

.sav-dashboard-financial-forecast-chart {
  display: grid !important;
  gap: 22px !important;
}

.sav-dashboard-forecast-summary {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)) !important;
}

.sav-dashboard-forecast-summary > span {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  color: #526174 !important;
  display: grid !important;
  font-size: 11px !important;
  gap: 6px !important;
  padding: 12px 14px !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-forecast-summary strong {
  color: #111827 !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-forecast-bars {
  display: grid !important;
  gap: 10px !important;
}

.sav-dashboard-forecast-bar {
  align-items: center !important;
  border-radius: 8px !important;
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: minmax(120px, 0.75fr) minmax(180px, 1.35fr) minmax(120px, 0.65fr) !important;
  padding: 7px 8px !important;
  transition: background-color 140ms ease, transform 140ms ease !important;
}

.sav-dashboard-forecast-bar:hover {
  background: #f8fafc !important;
  transform: translateY(-1px) !important;
}

.sav-dashboard-forecast-identity,
.sav-dashboard-forecast-values {
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
}

.sav-dashboard-forecast-identity strong,
.sav-dashboard-forecast-values strong {
  color: #111827 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

.sav-dashboard-forecast-identity small,
.sav-dashboard-forecast-values small {
  color: #64748b !important;
  font-size: 10.5px !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

.sav-dashboard-forecast-values {
  font-variant-numeric: tabular-nums !important;
  text-align: right !important;
}

.sav-dashboard-forecast-track {
  background: #edf1f6 !important;
  border-radius: 999px !important;
  display: block !important;
  height: 14px !important;
  overflow: hidden !important;
  position: relative !important;
}

.sav-dashboard-forecast-track > i {
  background: #dbeafe !important;
  border-radius: inherit !important;
  display: block !important;
  height: 100% !important;
  overflow: hidden !important;
  width: var(--w, 0%) !important;
}

.sav-dashboard-forecast-track > i > b {
  background: #5b5bd6 !important;
  border-radius: inherit !important;
  display: block !important;
  height: 100% !important;
  width: var(--m, 0%) !important;
}

.sav-dashboard-forecast-legend {
  align-items: center !important;
  color: #64748b !important;
  display: flex !important;
  flex-wrap: wrap !important;
  font-size: 10.5px !important;
  gap: 18px !important;
}

.sav-dashboard-forecast-legend span {
  align-items: center !important;
  display: inline-flex !important;
  gap: 7px !important;
}

.sav-dashboard-forecast-legend i {
  background: #dbeafe !important;
  border-radius: 999px !important;
  display: inline-block !important;
  height: 8px !important;
  width: 18px !important;
}

.sav-dashboard-forecast-legend span:last-child i {
  background: #5b5bd6 !important;
}

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

  .sav-dashboard-v2-grid > [data-dashboard-chart] {
    grid-column: 1 / -1 !important;
  }

}

@media (max-width: 640px) {
  .sav-dashboard-forecast-bar {
    grid-template-columns: 1fr !important;
  }

  .sav-dashboard-forecast-values {
    text-align: left !important;
  }

  .sav-dashboard-settings-panel {
    padding: 20px !important;
  }

  .sav-dashboard-settings-header {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .sav-dashboard-settings-header-actions {
    justify-content: space-between !important;
    width: 100% !important;
  }

  .sav-dashboard-settings-status {
    min-width: 0 !important;
    text-align: left !important;
  }

  .sav-dashboard-pie-wrap {
    justify-items: center !important;
    grid-template-columns: 1fr !important;
  }

  .sav-dashboard-pie-legend {
    width: 100% !important;
  }
}

/* 2026-07-14: Factures visual parity with Achats (v34). */
.sav-client-invoice-filters {
  height: 32px !important;
  min-height: 32px !important;
  margin-bottom: 16px !important;
}

.sav-client-invoice-filters .legacy-select {
  height: 32px !important;
  min-height: 32px !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
}

.sav-client-invoice-panel {
  border-radius: 10px !important;
  overflow: hidden !important;
}

.sav-client-invoice-panel .purchase-grid-header {
  align-items: stretch !important;
  font-size: 10px !important;
  height: 37px !important;
  line-height: 1.2 !important;
  min-height: 37px !important;
}

.sav-client-invoice-panel .purchase-grid-header > span {
  align-items: center !important;
  display: flex !important;
  justify-content: center !important;
  min-width: 0 !important;
  padding: 0 3px !important;
  text-align: center !important;
}

.sav-client-invoice-panel .purchase-grid-header > span:nth-child(2),
.sav-client-invoice-panel .purchase-grid-header > span:nth-child(3) {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-client-invoice-panel .purchase-project-header {
  align-items: center !important;
  column-gap: 8px !important;
  grid-template-columns: 34px minmax(170px, 1.35fr) minmax(0, 5.65fr) !important;
  min-height: 48px !important;
  padding: 6px 10px !important;
}

.sav-client-invoice-project-icon {
  height: 28px !important;
  width: 28px !important;
}

.sav-client-invoice-project-icon svg {
  height: 16px !important;
  width: 16px !important;
}

.sav-client-invoice-panel .project-title-group {
  align-content: center !important;
  align-self: center !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
}

.sav-client-invoice-panel .project-title {
  color: #1f2937 !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 1.15 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-client-invoice-panel .project-client-input {
  font-size: 10.5px !important;
  line-height: 1.2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-client-invoice-panel .project-subtotals {
  align-items: stretch !important;
  align-self: stretch !important;
  display: grid !important;
  gap: 4px !important;
  grid-column: 3 !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  grid-template-rows: minmax(36px, 1fr) !important;
  height: auto !important;
  min-width: 0 !important;
}

.sav-client-invoice-panel .project-metric {
  align-content: center !important;
  align-items: end !important;
  display: grid !important;
  gap: 2px !important;
  grid-row: 1 !important;
  grid-template-rows: auto auto !important;
  justify-content: stretch !important;
  min-height: 36px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-align: right !important;
}

.sav-client-invoice-panel .project-metric-invoice { grid-column: 1 !important; }
.sav-client-invoice-panel .project-metric-discount { grid-column: 2 !important; }
.sav-client-invoice-panel .project-metric-receive { grid-column: 3 !important; }
.sav-client-invoice-panel .project-metric-pay { grid-column: 4 !important; }
.sav-client-invoice-panel .project-metric-paid { grid-column: 5 !important; }

.sav-client-invoice-panel .project-metric > span {
  font-size: 9px !important;
  font-weight: 400 !important;
  line-height: 1.05 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-client-invoice-panel .project-metric > strong {
  font-size: 11.25px !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-client-invoice-panel .purchase-grid-row {
  align-items: center !important;
  font-size: 11.25px !important;
  line-height: 1.2 !important;
  min-height: 42px !important;
  padding: 5px 10px !important;
  transition: background-color 120ms ease !important;
}

.sav-client-invoice-panel .purchase-grid-row:hover {
  background-color: #fbfcfe !important;
}

.sav-client-invoice-panel .purchase-grid-row > * {
  align-self: center !important;
  box-sizing: border-box !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell {
  align-items: center !important;
  display: flex !important;
  gap: 6px !important;
  height: 30px !important;
  min-width: 0 !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell > span {
  align-content: center !important;
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell small {
  font-size: 9px !important;
  line-height: 1 !important;
}

.sav-client-invoice-row .sav-invoice-ref-cell strong {
  font-size: 10.5px !important;
  line-height: 1.05 !important;
}

.sav-client-invoice-row-add {
  align-items: center !important;
  display: inline-flex !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  gap: 4px !important;
  height: 26px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-width: 70px !important;
  padding: 0 9px !important;
}

.sav-client-invoice-row-add svg {
  height: 12px !important;
  width: 12px !important;
}

.sav-client-invoice-row-add:disabled {
  opacity: 0.58 !important;
}

.sav-client-invoice-panel .sav-invoice-total-ttc-cell {
  align-items: center !important;
  display: flex !important;
  font-size: 11.25px !important;
  height: 28px !important;
  line-height: 1.2 !important;
}

.sav-client-invoice-panel .sav-invoice-total-ttc-input[readonly] {
  box-sizing: border-box !important;
  font-size: 11.25px !important;
  height: 26px !important;
  line-height: 1.2 !important;
  padding: 0 4px !important;
  text-align: right !important;
}

.sav-client-invoice-panel .purchase-total {
  align-items: center !important;
  display: grid !important;
  font-size: 11.25px !important;
  height: 27px !important;
  justify-items: end !important;
  line-height: 1.2 !important;
  min-height: 27px !important;
  padding: 0 3px !important;
  transform: none !important;
}

.sav-client-invoice-panel .purchase-rests {
  align-content: center !important;
  display: grid !important;
  font-size: 10px !important;
  gap: 2px !important;
  line-height: 1.15 !important;
  min-height: 28px !important;
  padding-right: 3px !important;
}

.sav-client-invoice-panel .row-expand {
  align-items: center !important;
  display: inline-flex !important;
  height: 24px !important;
  justify-content: center !important;
  min-height: 24px !important;
  min-width: 24px !important;
  width: 24px !important;
}

.sav-client-invoice-panel .purchase-row-details {
  align-items: center !important;
  background: #fbfcfe !important;
  min-height: 82px !important;
  padding: 8px 10px 10px !important;
}

.sav-client-invoice-panel .sav-client-invoice-detail-cell {
  align-self: center !important;
  display: grid !important;
  gap: 4px !important;
  grid-template-rows: repeat(3, 22px) !important;
  height: auto !important;
  min-height: 74px !important;
}

.sav-client-invoice-panel .sav-client-invoice-detail-cell label {
  align-items: center !important;
  display: grid !important;
  gap: 4px !important;
  grid-template-columns: 24px minmax(0, 1fr) !important;
  height: 22px !important;
  min-height: 22px !important;
}

.sav-client-invoice-panel .sav-client-invoice-detail-cell label span {
  font-size: 9px !important;
  line-height: 1 !important;
  text-align: right !important;
}

.sav-client-invoice-panel .sav-client-invoice-detail-cell input,
.sav-client-invoice-panel .sav-client-invoice-detail-cell select {
  box-sizing: border-box !important;
  font-size: 10px !important;
  height: 22px !important;
  line-height: 1.1 !important;
  min-height: 22px !important;
  padding: 0 6px !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select {
  border-radius: 7px !important;
  height: 22px !important;
  padding: 0 4px !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-value {
  align-items: center !important;
  display: flex !important;
  font-size: 9.5px !important;
  font-weight: 600 !important;
  height: 20px !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.sav-client-invoice-panel .purchase-row-details > .delete-icon {
  align-items: center !important;
  align-self: center !important;
  background: #ffffff !important;
  border: 1px solid #fca5a5 !important;
  border-radius: 50% !important;
  color: #e30613 !important;
  display: inline-flex !important;
  font-size: 13px !important;
  height: 24px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 24px !important;
  min-width: 24px !important;
  padding: 0 !important;
  width: 24px !important;
}

.sav-client-invoice-panel input:focus-visible,
.sav-client-invoice-panel button:focus-visible,
.sav-client-invoice-panel select:focus-visible {
  outline: 2px solid #1a73e8 !important;
  outline-offset: 1px !important;
}

@container (max-width: 920px) {
  .sav-client-invoice-panel .purchase-project-header {
    grid-template-columns: 32px minmax(150px, 1.2fr) minmax(0, 4.8fr) !important;
    min-height: 58px !important;
    padding-inline: 8px !important;
  }

  .sav-client-invoice-panel .purchase-grid-row {
    font-size: 10.5px !important;
    min-height: 40px !important;
    padding-inline: 8px !important;
  }

  .sav-client-invoice-panel .project-metric > span {
    font-size: 8.5px !important;
  }

  .sav-client-invoice-panel .project-metric > strong {
    font-size: 10.5px !important;
  }
}

.sav-client-invoice-panel .purchase-row-details > .sav-client-invoice-detail-cell:not(.invoice-detail-cell-percent-only) {
  align-content: center !important;
  grid-template-rows: repeat(3, 22px) !important;
  min-height: 74px !important;
}

/* 2026-07-14: Factures — reliable controls and final Achats table parity (v44). */
.sav-client-invoice-panel {
  --purchase-grid-columns:
    minmax(0, 0.34fr)
    minmax(0, 1.22fr)
    minmax(0, 1.34fr)
    minmax(0, 0.96fr)
    repeat(var(--invoice-installment-count, 5), minmax(0, 1fr))
    minmax(0, 0.9fr)
    minmax(0, 1.2fr)
    minmax(0, 0.34fr);
}

.sav-client-invoice-panel .purchase-grid-header,
.sav-client-invoice-panel .purchase-grid-row,
.sav-client-invoice-panel .purchase-row-details {
  column-gap: clamp(3px, 0.34cqw, 5px) !important;
}

.sav-client-invoice-panel .sav-client-invoice-row {
  position: relative !important;
}

.sav-client-invoice-panel .sav-invoice-total-ttc-input[readonly] {
  background: transparent !important;
  border-color: transparent !important;
  color: #1557b0 !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}

.sav-client-invoice-panel .sav-client-invoice-row-add {
  line-height: 26px !important;
  vertical-align: middle !important;
}

.sav-client-invoice-panel .row-expand {
  background: #f3f6fa !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  color: #43546a !important;
  cursor: pointer !important;
  height: 28px !important;
  justify-self: center !important;
  min-height: 28px !important;
  min-width: 28px !important;
  pointer-events: auto !important;
  position: relative !important;
  width: 28px !important;
  z-index: 2 !important;
}

.sav-client-invoice-panel .row-expand:hover {
  background: #e8eef6 !important;
  color: #1557b0 !important;
}

.sav-client-invoice-panel .row-expand svg {
  height: 16px !important;
  pointer-events: none !important;
  width: 16px !important;
}

.sav-client-invoice-panel .purchase-row-details {
  border-top: 1px solid #edf1f6 !important;
}
/* Large supplier/client directories stay fluid as their contact lists grow. */
.entity-list-table > .entity-list-line {
  contain: layout style paint;
  content-visibility: auto;
  contain-intrinsic-size: auto 52px;
}

/* 2026-07-15: detailed Dashboard financial block moved to Marge / Finance. */
main.app-main.sav-finance-main {
  background: #ffffff !important;
  padding-bottom: 48px !important;
}

main.app-main.sav-finance-main > header {
  margin-bottom: 14px !important;
}

main.app-main.sav-finance-main .placeholder-box[data-sav-finance-placeholder="true"] {
  display: none !important;
}

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

.sav-finance-intro {
  align-items: center !important;
  display: flex !important;
  gap: 18px !important;
  justify-content: space-between !important;
  min-height: 28px !important;
}

.sav-finance-intro p {
  color: #56657a !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

.sav-finance-intro > span {
  background: #f3f6fa !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 999px !important;
  color: #526174 !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  padding: 6px 11px !important;
  white-space: nowrap !important;
}

.sav-finance-filter-bar {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  isolation: isolate !important;
  max-width: 100% !important;
  min-height: 36px !important;
  min-width: 0 !important;
  overflow: visible !important;
  position: relative !important;
  width: 100% !important;
  z-index: 4 !important;
}

.sav-finance-filter-icon {
  align-items: center !important;
  color: #526174 !important;
  display: inline-flex !important;
  height: 32px !important;
  justify-content: center !important;
  width: 24px !important;
}

.sav-finance-filter-icon svg {
  height: 17px !important;
  width: 17px !important;
}

.sav-finance-filter-bar .legacy-select-wrap {
  box-sizing: border-box !important;
  display: inline-flex !important;
  flex: 0 1 220px !important;
  max-width: 220px !important;
  min-width: 180px !important;
  opacity: 1 !important;
  overflow: visible !important;
  visibility: visible !important;
  width: 220px !important;
}

.sav-finance-filter-bar .legacy-select {
  background-color: #ffffff !important;
  border: 1px solid #dbe3ee !important;
  border-radius: 999px !important;
  color: #202124 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  height: 34px !important;
  max-width: 100% !important;
  min-height: 34px !important;
  min-width: 0 !important;
  opacity: 1 !important;
  padding: 0 34px 0 14px !important;
  visibility: visible !important;
  width: 220px !important;
}

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

.sav-finance-context > span {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  display: grid !important;
  gap: 6px !important;
  min-height: 64px !important;
  padding: 13px 16px !important;
}

.sav-finance-context small,
.sav-finance-panel-title small {
  color: #667085 !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

.sav-finance-context strong {
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  white-space: pre-line !important;
}

.sav-finance-kpis {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.sav-finance-kpis .sav-dashboard-metric {
  --sav-dashboard-tone: #5f6368;
  --sav-dashboard-tone-soft: #f1f3f4;
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 9px !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.045) !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: 40px minmax(0, 1fr) !important;
  min-height: 100px !important;
  padding: 15px 16px !important;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="supplier"] {
  --sav-dashboard-tone: #5f6368;
  --sav-dashboard-tone-soft: #f1f3f4;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="revenue"] {
  --sav-dashboard-tone: #00897b;
  --sav-dashboard-tone-soft: #e0f2f1;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="margin"] {
  --sav-dashboard-tone: #5b5bd6;
  --sav-dashboard-tone-soft: #eeeeff;
}

.sav-finance-kpis .sav-dashboard-metric-icon {
  align-items: center !important;
  background: var(--sav-dashboard-tone-soft) !important;
  border-radius: 8px !important;
  color: var(--sav-dashboard-tone) !important;
  display: inline-flex !important;
  height: 40px !important;
  justify-content: center !important;
  width: 40px !important;
}

.sav-finance-kpis .sav-dashboard-metric > div {
  display: grid !important;
  min-width: 0 !important;
  row-gap: 5px !important;
}

.sav-finance-kpis .sav-dashboard-metric > div > span {
  color: var(--sav-dashboard-tone) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
}

.sav-finance-kpis .sav-dashboard-metric strong {
  color: #202124 !important;
  font-size: clamp(20px, 1.6vw, 27px) !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
  line-height: 1 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

.sav-finance-kpis .sav-dashboard-metric small {
  color: #667085 !important;
  font-size: 10.5px !important;
  font-weight: 400 !important;
}

.sav-finance-grid {
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
}

.sav-finance-panel {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 9px !important;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.045) !important;
  min-width: 0 !important;
  padding: 22px !important;
}

.sav-finance-margin-panel {
  grid-column: span 7 !important;
}

.sav-finance-progress-panel {
  grid-column: span 5 !important;
}

.sav-finance-supplier-panel,
.sav-finance-client-panel {
  grid-column: span 6 !important;
}

.sav-finance-panel-title {
  align-items: flex-start !important;
  display: flex !important;
  gap: 16px !important;
  justify-content: space-between !important;
  margin-bottom: 18px !important;
}

.sav-finance-panel-title > div {
  display: grid !important;
  gap: 5px !important;
}

.sav-finance-panel-title h2 {
  color: #111827 !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

.sav-finance-panel-title > strong {
  color: #00897b !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.sav-finance-metric-list {
  display: grid !important;
  gap: 9px !important;
}

.sav-finance-metric-list .sav-filter-metric-black,
.sav-finance-metric-list .sav-filter-metric-red,
.sav-finance-metric-list .sav-filter-metric-green,
.sav-finance-metric-list .sav-filter-metric-brand,
.sav-finance-metric-list .sav-filter-metric-margin,
.sav-finance-metric-list .sav-filter-metric-warning,
.sav-finance-metric-list .sav-filter-metric-discount {
  min-height: 50px !important;
}

@media (max-width: 1180px) {
  .sav-finance-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .sav-finance-margin-panel,
  .sav-finance-progress-panel,
  .sav-finance-supplier-panel,
  .sav-finance-client-panel {
    grid-column: span 6 !important;
  }
}

@media (max-width: 760px) {
  .sav-finance-intro {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .sav-finance-filter-bar {
    align-items: stretch !important;
    flex-wrap: wrap !important;
  }

  .sav-finance-filter-bar .legacy-select-wrap,
  .sav-finance-filter-bar .legacy-select {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  .sav-finance-filter-icon {
    display: none !important;
  }

  .sav-finance-context,
  .sav-finance-kpis,
  .sav-finance-grid {
    grid-template-columns: 1fr !important;
  }

  .sav-finance-margin-panel,
  .sav-finance-progress-panel,
  .sav-finance-supplier-panel,
  .sav-finance-client-panel {
    grid-column: auto !important;
  }
}

/* Marge / Finance: one consistent semantic accent border for every chart card. */
.sav-finance-grid > .sav-finance-panel {
  --sav-finance-panel-accent: #5b5bd6;
  border-left-color: var(--sav-finance-panel-accent) !important;
  border-left-style: solid !important;
  border-left-width: 4px !important;
  box-sizing: border-box !important;
}

.sav-finance-grid > .sav-finance-margin-panel {
  --sav-finance-panel-accent: #5b5bd6;
}

.sav-finance-grid > .sav-finance-progress-panel {
  --sav-finance-panel-accent: #00897b;
}

.sav-finance-progress-legend {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 16px !important;
  margin: -5px 0 2px !important;
}

.sav-finance-progress-legend > span {
  align-items: center !important;
  color: #475569 !important;
  display: inline-flex !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  gap: 6px !important;
  line-height: 1.25 !important;
}

.sav-finance-progress-legend i {
  background: #d93025 !important;
  border-radius: 999px !important;
  display: inline-block !important;
  flex: 0 0 9px !important;
  height: 9px !important;
  width: 9px !important;
}

.sav-finance-progress-legend .is-pending i {
  background: #f29900 !important;
}

.sav-finance-progress-legend .is-paid i {
  background: #188038 !important;
}

.sav-chartjs-host.sav-chartjs-finance-progress {
  height: 176px !important;
  margin-top: 8px !important;
  min-height: 176px !important;
}

.sav-finance-progress-bases {
  align-items: center !important;
  border-top: 1px solid #edf1f6 !important;
  color: #64748b !important;
  display: flex !important;
  flex-wrap: wrap !important;
  font-size: 10.5px !important;
  gap: 8px 18px !important;
  justify-content: space-between !important;
  line-height: 1.3 !important;
  margin-top: 6px !important;
  padding-top: 9px !important;
}

.sav-finance-progress-bases strong {
  color: #334155 !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 500 !important;
}

@media (max-width: 760px) {
  .sav-chartjs-host.sav-chartjs-finance-progress {
    height: 220px !important;
    min-height: 220px !important;
  }

  .sav-finance-progress-bases {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
}

.sav-finance-grid > .sav-finance-supplier-panel {
  --sav-finance-panel-accent: #f29900;
}

.sav-finance-grid > .sav-finance-client-panel {
  --sav-finance-panel-accent: #188038;
}

/* Dashboard v83: shared financial data, interactive charts and balanced responsive layout. */
.sav-dashboard-v2-grid > [data-dashboard-chart] {
  grid-column: span 6 !important;
  min-height: clamp(390px, 34vw, 460px) !important;
}

.sav-dashboard-v2-grid > [data-dashboard-chart="forecasts"] {
  min-height: clamp(410px, 36vw, 500px) !important;
}

.sav-dashboard-panel {
  padding: clamp(20px, 2.4vw, 32px) !important;
}

.sav-dashboard-panel h2 {
  margin-bottom: 6px !important;
}

.sav-dashboard-chart-scope {
  color: #667085 !important;
  font-size: clamp(11px, 1vw, 13px) !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  margin: 0 0 clamp(20px, 2vw, 28px) !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-pie {
  background: transparent !important;
  border-radius: 50% !important;
  cursor: default !important;
  filter: none !important;
  transform: none !important;
  width: min(210px, 100%) !important;
}

.sav-dashboard-pie::after {
  content: none !important;
}

.sav-dashboard-pie > svg {
  display: block !important;
  height: auto !important;
  max-width: 100% !important;
  overflow: visible !important;
  width: 100% !important;
}

.sav-dashboard-pie-segment,
.sav-dashboard-pie-empty {
  transform: rotate(-90deg) !important;
  transform-origin: 21px 21px !important;
}

.sav-dashboard-pie-segment {
  cursor: help !important;
  transition: filter 150ms ease, stroke-width 150ms ease !important;
}

.sav-dashboard-pie-segment:hover,
.sav-dashboard-pie-segment:focus-visible {
  filter: drop-shadow(0 1px 1.5px rgba(15, 23, 42, 0.28)) !important;
  outline: none !important;
  stroke-width: 8.2 !important;
}

.sav-dashboard-pie-legend > span:focus-visible,
.sav-dashboard-forecast-bar:focus-visible,
.sav-dashboard-forecast-summary > span:focus-visible,
.sav-dashboard-forecast-track > i:focus-visible,
.sav-dashboard-forecast-track > i > b:focus-visible {
  outline: 2px solid #1a73e8 !important;
  outline-offset: 2px !important;
}

.sav-dashboard-pie-legend > span > small {
  color: #526174 !important;
}

.sav-dashboard-line-chart svg {
  height: clamp(220px, 25vw, 280px) !important;
}

.sav-dashboard-grid-tick line {
  stroke: #e7ecf3 !important;
  stroke-dasharray: 1.2 1.6 !important;
  stroke-width: 0.35 !important;
}

.sav-dashboard-grid-tick text {
  fill: #64748b !important;
  font-family: var(--sav-font-family) !important;
  font-size: 2.5px !important;
  font-variant-numeric: tabular-nums !important;
}

.sav-dashboard-line-hitarea {
  cursor: help !important;
  pointer-events: stroke !important;
  stroke: transparent !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 6 !important;
}

.sav-dashboard-line-hitarea:focus-visible {
  outline: none !important;
  stroke: rgba(26, 115, 232, 0.16) !important;
}

.sav-estimate-point,
.sav-real-point {
  cursor: help !important;
}

.sav-estimate-point:focus-visible,
.sav-real-point:focus-visible {
  filter: drop-shadow(0 0 2px currentColor) !important;
  outline: none !important;
  r: 1.45px !important;
}

.sav-dashboard-line-axis {
  align-items: start !important;
  gap: 4px !important;
}

.sav-dashboard-line-axis > span {
  hyphens: none !important;
  overflow-wrap: normal !important;
  white-space: nowrap !important;
}

.sav-dashboard-forecast-summary > span,
.sav-dashboard-forecast-bar,
.sav-dashboard-forecast-track > i,
.sav-dashboard-forecast-track > i > b {
  cursor: help !important;
}

.sav-dashboard-forecast-summary strong {
  line-height: 1.25 !important;
}

.sav-dashboard-chart-tooltip {
  background: #172033 !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.24) !important;
  color: #ffffff !important;
  font-family: var(--sav-font-family) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  max-width: min(360px, calc(100vw - 20px)) !important;
  opacity: 0 !important;
  padding: 9px 11px !important;
  pointer-events: none !important;
  position: fixed !important;
  transform: translateY(4px) !important;
  transition: opacity 100ms ease, transform 100ms ease !important;
  visibility: hidden !important;
  white-space: normal !important;
  z-index: 10050 !important;
}

.sav-dashboard-chart-tooltip.is-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
  visibility: visible !important;
}

@media (max-width: 1180px) {
  .sav-dashboard-v2-grid > [data-dashboard-chart] {
    grid-column: 1 / -1 !important;
    min-height: 390px !important;
  }
}

@media (max-width: 640px) {
  .sav-dashboard-v2-grid > [data-dashboard-chart] {
    min-height: 0 !important;
  }

  .sav-dashboard-line-chart svg {
    height: 210px !important;
  }

  .sav-dashboard-pie {
    width: min(190px, 74vw) !important;
  }

  .sav-dashboard-chart-tooltip {
    font-size: 11px !important;
  }
}

/* Login v84: keep the primary action centered without changing its dimensions. */
.sav-access-login-actions {
  text-align: center !important;
}

/* Dashboard v92: never expose the native all-options layout while persisted
   visibility preferences are being applied. */
html.sav-dashboard-preferences-pending #root main.app-main {
  min-height: 100vh !important;
  position: relative !important;
}

html.sav-dashboard-preferences-pending #root main.app-main > * {
  pointer-events: none !important;
  visibility: hidden !important;
}

html.sav-dashboard-preferences-pending #root main.app-main::before {
  color: #64748b !important;
  content: "Chargement du Dashboard\2026" !important;
  display: block !important;
  font-family: var(--sav-font-family) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  left: clamp(24px, 3vw, 42px) !important;
  position: absolute !important;
  top: 30px !important;
}

html.sav-dashboard-preferences-pending #root main.app-main::after {
  background:
    linear-gradient(90deg, #eef2f7 0 31%, transparent 31% 34%, #eef2f7 34% 65%, transparent 65% 68%, #eef2f7 68% 100%) 0 74px / 100% 104px no-repeat,
    linear-gradient(#f4f6f9, #f4f6f9) 0 198px / 100% 250px no-repeat !important;
  border-radius: 10px !important;
  content: "" !important;
  display: block !important;
  height: 448px !important;
  left: clamp(24px, 3vw, 42px) !important;
  max-width: calc(100% - clamp(48px, 6vw, 84px)) !important;
  position: absolute !important;
  right: clamp(24px, 3vw, 42px) !important;
  top: 38px !important;
}

@media (max-width: 760px) {
  html.sav-dashboard-preferences-pending #root main.app-main::after {
    background:
      linear-gradient(#eef2f7, #eef2f7) 0 74px / 100% 92px no-repeat,
      linear-gradient(#f4f6f9, #f4f6f9) 0 184px / 100% 230px no-repeat !important;
    height: 414px !important;
  }
}

/* Data loading v182: a tab is revealed only after its canonical state and all
   synchronous layout enhancements are ready. The final layout stays unchanged. */
html.sav-tab-content-pending #root main.app-main {
  min-height: 100vh !important;
  overflow: hidden !important;
  position: relative !important;
}

html.sav-tab-content-pending #root main.app-main > * {
  pointer-events: none !important;
  visibility: hidden !important;
}

html.sav-tab-content-pending #root main.app-main::before {
  color: #64748b !important;
  content: "Chargement des donn\00e9 es\2026" !important;
  display: block !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  left: clamp(24px, 3vw, 42px) !important;
  position: absolute !important;
  top: 30px !important;
}

html.sav-tab-content-pending #root main.app-main::after {
  background:
    linear-gradient(90deg, #eef2f7 0 31%, transparent 31% 34%, #eef2f7 34% 65%, transparent 65% 68%, #eef2f7 68% 100%) 0 74px / 100% 104px no-repeat,
    repeating-linear-gradient(to bottom, #f4f6f9 0 52px, transparent 52px 62px) 0 198px / 100% 310px no-repeat !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  content: "" !important;
  display: block !important;
  height: 510px !important;
  left: clamp(24px, 3vw, 42px) !important;
  max-width: calc(100% - clamp(48px, 6vw, 84px)) !important;
  position: absolute !important;
  right: clamp(24px, 3vw, 42px) !important;
  top: 38px !important;
}

@media (max-width: 760px) {
  html.sav-tab-content-pending #root main.app-main::after {
    background:
      linear-gradient(#eef2f7, #eef2f7) 0 74px / 100% 92px no-repeat,
      repeating-linear-gradient(to bottom, #f4f6f9 0 48px, transparent 48px 58px) 0 184px / 100% 290px no-repeat !important;
    height: 474px !important;
  }
}

/* Dashboard v120: real Chart.js canvases replace every active SVG/CSS chart. */
.sav-dashboard-v2-grid > [data-dashboard-chart] {
  border-left-color: #dbe3ee !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.sav-chartjs-host {
  height: clamp(280px, 26vw, 390px) !important;
  margin-top: 14px !important;
  min-height: 250px !important;
  min-width: 0 !important;
  position: relative !important;
  width: 100% !important;
}

.sav-chartjs-host.sav-chartjs-doughnut {
  height: clamp(300px, 27vw, 405px) !important;
}

.sav-chartjs-host.sav-chartjs-forecast {
  height: clamp(300px, calc(190px + (var(--sav-chart-row-count, 1) * 30px)), 520px) !important;
}

.sav-chartjs-host > canvas[data-sav-chartjs] {
  cursor: crosshair !important;
  display: block !important;
  height: 100% !important;
  max-height: 100% !important;
  max-width: 100% !important;
  touch-action: pan-y !important;
  width: 100% !important;
}

.sav-chartjs-host > canvas[data-sav-chartjs][hidden] {
  display: none !important;
}

.sav-chartjs-empty {
  align-items: center !important;
  background: #f8fafc !important;
  border: 1px dashed #d6dee9 !important;
  border-radius: 10px !important;
  color: #64748b !important;
  display: flex !important;
  font-family: var(--sav-font-family) !important;
  font-size: 13px !important;
  inset: 0 !important;
  justify-content: center !important;
  line-height: 1.45 !important;
  padding: 28px !important;
  position: absolute !important;
  text-align: center !important;
}

.sav-chartjs-empty[hidden] {
  display: none !important;
}

.sav-chartjs-tooltip {
  background: #172033 !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 9px !important;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.26) !important;
  color: #ffffff !important;
  display: grid !important;
  font-family: var(--sav-font-family) !important;
  font-size: 12px !important;
  gap: 4px !important;
  line-height: 1.4 !important;
  max-width: min(360px, calc(100% - 16px)) !important;
  opacity: 0 !important;
  padding: 10px 12px !important;
  pointer-events: none !important;
  position: absolute !important;
  transition: opacity 90ms ease !important;
  visibility: hidden !important;
  white-space: normal !important;
  z-index: 12 !important;
}

.sav-chartjs-tooltip[hidden] {
  display: none !important;
}

.sav-chartjs-tooltip.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
}

.sav-chartjs-tooltip > strong,
.sav-chartjs-tooltip > span,
.sav-chartjs-tooltip > small {
  display: block !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

.sav-chartjs-tooltip > strong {
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-bottom: 2px !important;
}

.sav-chartjs-tooltip > span {
  align-items: center !important;
  display: flex !important;
  gap: 7px !important;
}

.sav-chartjs-tooltip > span > i {
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
  border-radius: 50% !important;
  flex: 0 0 8px !important;
  height: 8px !important;
  width: 8px !important;
}

.sav-chartjs-tooltip > small {
  border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: #dce5f2 !important;
  margin-top: 3px !important;
  padding-top: 5px !important;
}

@media (max-width: 760px) {
  .sav-chartjs-host,
  .sav-chartjs-host.sav-chartjs-doughnut {
    height: 285px !important;
    min-height: 285px !important;
  }

  .sav-chartjs-host.sav-chartjs-forecast {
    height: clamp(310px, calc(205px + (var(--sav-chart-row-count, 1) * 34px)), 560px) !important;
  }

  .sav-chartjs-tooltip {
    font-size: 11px !important;
  }
}

/* v122 - Factures client: acomptes progressifs et statuts pilotés par les documents. */
.sav-client-invoice-panel .project-subtotals {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.sav-client-invoice-panel .project-metric-invoice { grid-column: 1 !important; }
.sav-client-invoice-panel .project-metric-receive { grid-column: 2 !important; }
.sav-client-invoice-panel .project-metric-pay { grid-column: 3 !important; }
.sav-client-invoice-panel .project-metric-paid { grid-column: 4 !important; }

.sav-client-invoice-panel .sav-invoice-ref-cell > span {
  width: 100% !important;
}

.sav-client-invoice-panel .purchase-row-details {
  min-height: 64px !important;
}

.sav-client-invoice-panel .purchase-row-details > .sav-client-invoice-detail-cell,
.sav-client-invoice-panel .purchase-row-details > .sav-client-invoice-detail-cell.invoice-detail-cell-percent-only {
  align-content: center !important;
  gap: 5px !important;
  grid-template-rows: 22px 24px !important;
  min-height: 54px !important;
}

.sav-client-invoice-panel .sav-client-invoice-detail-cell.invoice-detail-cell-percent-only label:nth-of-type(n + 2),
.sav-client-invoice-panel .sav-client-invoice-detail-cell.invoice-detail-cell-percent-only .paid-pill {
  display: none !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  display: grid !important;
  gap: 4px !important;
  grid-template-columns: 24px minmax(0, 1fr) !important;
  height: 24px !important;
  padding: 0 !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-label {
  background: transparent !important;
  color: #5f6368 !important;
  font-size: 8.5px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-align: right !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-value {
  align-items: center !important;
  border: 1px solid transparent !important;
  border-radius: 7px !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  font-family: inherit !important;
  font-size: 9.5px !important;
  font-weight: 600 !important;
  height: 22px !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  min-width: 0 !important;
  padding: 0 6px !important;
  width: 100% !important;
}

.sav-client-invoice-panel button.sav-client-invoice-status-value {
  cursor: pointer !important;
  pointer-events: auto !important;
  transition: filter 120ms ease, transform 120ms ease !important;
}

.sav-client-invoice-panel button.sav-client-invoice-status-value:hover {
  filter: brightness(0.96) !important;
  transform: translateY(-1px) !important;
}

.sav-client-invoice-panel button.sav-client-invoice-status-value:active {
  transform: translateY(0) scale(0.98) !important;
}

.sav-client-invoice-panel button.sav-client-invoice-status-value[aria-busy="true"] {
  cursor: progress !important;
  filter: saturate(0.75) !important;
  opacity: 0.68 !important;
  pointer-events: none !important;
  transform: none !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-draft .sav-client-invoice-status-value {
  background: #fff7f7 !important;
  border-color: #fecaca !important;
  color: #991b1b !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-sent .sav-client-invoice-status-value {
  background: #fff4df !important;
  border-color: #f2b94b !important;
  color: #9a5800 !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-paid .sav-client-invoice-status-value {
  background: #e6f4ea !important;
  border-color: #81c995 !important;
  color: #137333 !important;
}

/* Factures: the field label stays neutral; only the status value carries state color. */
.sav-client-invoice-panel
  .sav-client-invoice-status-select:is(
    .sav-client-invoice-status-draft,
    .sav-client-invoice-status-sent,
    .sav-client-invoice-status-paid
  ) {
  background: transparent !important;
  border-color: transparent !important;
  color: inherit !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-label {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #5f6368 !important;
}

/* Factures: reuse the exact Achats amount-and-attachment visual component. */
.sav-client-invoice-panel .sav-client-invoice-installment {
  font-size: clamp(7px, 1.02cqw, 12px) !important;
  line-height: normal !important;
}

.sav-client-invoice-panel .row-expand {
  background: #ffffff !important;
  border-color: #d7dee8 !important;
  color: #43546a !important;
}

.sav-client-invoice-panel .row-expand:hover {
  background: #f1f3f4 !important;
  border-color: #c8d1dc !important;
  color: #26384d !important;
}

@media (max-width: 760px) {
  .sav-client-invoice-panel .sav-client-invoice-status-value {
    font-size: 9px !important;
    padding-inline: 4px !important;
  }
}

/* Quote documents: keep translated column headings readable in every language. */
.sav-quote-document-host .sav-service-header,
.sav-quote-document-host .sav-page-repeated-header,
.sav-quote-document-host .sav-service-export-header,
.sav-quote-preview-shell .sav-service-export-header,
.sav-wysiwyg-print-shell .sav-service-export-header,
body.sav-force-client-print .quote-editor-shell .sav-service-export-header {
  align-items: stretch !important;
  grid-auto-rows: minmax(32px, auto) !important;
  height: auto !important;
  min-height: 32px !important;
}

.sav-quote-document-host .sav-service-header > :is(strong, span),
.sav-quote-document-host .sav-page-repeated-header > :is(strong, span),
.sav-quote-document-host .sav-service-export-header > strong,
.sav-quote-preview-shell .sav-service-export-header > strong,
.sav-wysiwyg-print-shell .sav-service-export-header > strong,
body.sav-force-client-print .quote-editor-shell .sav-service-export-header > strong {
  align-items: center !important;
  align-self: stretch !important;
  box-sizing: border-box !important;
  height: auto !important;
  hyphens: auto !important;
  line-height: 1.14 !important;
  min-height: 32px !important;
  min-width: 0 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  padding-block: 4px !important;
  text-overflow: clip !important;
  white-space: normal !important;
  word-break: normal !important;
}

.sav-payment-header,
.sav-payment-export-header {
  align-items: stretch !important;
  grid-auto-rows: minmax(29px, auto) !important;
  height: auto !important;
}

.sav-payment-header > span,
.sav-payment-export-header > span {
  align-items: center !important;
  align-self: stretch !important;
  box-sizing: border-box !important;
  display: flex !important;
  height: auto !important;
  hyphens: auto !important;
  line-height: 1.14 !important;
  min-height: 29px !important;
  min-width: 0 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  padding-block: 4px !important;
  text-overflow: clip !important;
  white-space: normal !important;
  word-break: normal !important;
}

.offer-table thead th:nth-child(n),
.offer-summary-table thead th:nth-child(n),
.offer-payment-table thead th:nth-child(n),
.offer-payment-table tfoot th:nth-child(n) {
  height: auto !important;
  hyphens: auto !important;
  line-height: 1.14 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  vertical-align: middle !important;
  white-space: normal !important;
  word-break: normal !important;
}

/* v129: keep the margin evolution card's outline neutral and uniform. The
   chart series colours remain untouched. */
body .sav-dashboard-v2-grid > [data-dashboard-chart="marginEvolution"] {
  border: 1px solid #e2e8f0 !important;
}
/* Factures: automatic Client -> Project -> signed quote hierarchy. */
.sav-client-invoice-panel .sav-client-invoice-client-group {
  border-top: 1px solid #dfe5ec;
  background: #fff;
}

.sav-client-invoice-panel .sav-client-invoice-client-group:first-of-type {
  border-top: 0;
}

.sav-client-invoice-panel .sav-client-invoice-client-header {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 14px;
  background: #f7f9fc;
  border-bottom: 1px solid #e4e9f0;
}

.sav-client-invoice-panel .sav-client-invoice-client-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  color: #1f4f8f;
  background: #eaf2ff;
  border-radius: 9px;
}

.sav-client-invoice-panel .sav-client-invoice-client-icon .sav-canonical-icon,
.sav-client-invoice-panel .sav-client-invoice-client-icon svg {
  width: 17px;
  height: 17px;
}

.sav-client-invoice-panel .sav-client-invoice-client-header .sav-client-invoice-client-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.sav-client-invoice-panel .sav-client-invoice-client-header strong {
  overflow: hidden;
  color: #172033;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sav-client-invoice-panel .sav-client-invoice-client-header span:not(.sav-client-invoice-client-icon) {
  color: #667085;
  font-size: 11px;
  line-height: 1.2;
}

/* Achats: preserve the native project and supplier rows while exposing the
   same Client -> Project hierarchy used by Factures. */
.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 14px;
  background: #f7f9fc;
  border-top: 1px solid #dfe5ec;
  border-bottom: 1px solid #e4e9f0;
}

.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header:first-child {
  border-top: 0;
}

.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header .sav-purchase-client-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  color: #1f4f8f;
  background: #eaf2ff;
  border-radius: 9px;
}

.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header .sav-purchase-client-icon .sav-canonical-icon,
.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header .sav-purchase-client-icon svg {
  width: 17px;
  height: 17px;
}

.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header .sav-purchase-client-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header strong {
  overflow: hidden;
  color: #172033;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header .sav-purchase-client-copy > span {
  color: #667085;
  font-size: 11px;
  line-height: 1.2;
}

.purchase-panel.sav-purchase-client-grouped > .purchase-project .purchase-project-header .project-client-input {
  display: none !important;
}

.sav-client-invoice-panel .sav-client-invoice-client-projects {
  padding-left: 12px;
  background: #fff;
}

.sav-client-invoice-panel .sav-client-invoice-client-projects > .sav-client-invoice-project {
  border-left: 2px solid #e5eaf1;
}

.sav-client-invoice-panel .sav-client-invoice-client-projects > .sav-client-invoice-project + .sav-client-invoice-project {
  border-top: 1px solid #e9edf3;
}

.sav-client-invoice-panel .sav-client-invoice-client-projects .purchase-project-header {
  min-height: 48px;
  background: #fff;
}

.sav-client-invoice-panel .sav-client-invoice-client-projects .project-client-input {
  color: #778195;
}

@media (max-width: 760px) {
  .sav-client-invoice-panel .sav-client-invoice-client-projects {
    padding-left: 6px;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-header {
    padding-inline: 10px;
  }
}

/* Factures: project totals share the table grid so every metric sits exactly
   below the matching desktop column. Compact layouts keep their card grid. */
@container (min-width: 921px) {
  .sav-client-invoice-panel .sav-client-invoice-client-projects {
    padding-left: 0 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects > .sav-client-invoice-project {
    border-left: 0 !important;
    box-shadow: inset 2px 0 #e5eaf1 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .purchase-project-header {
    column-gap: clamp(3px, 0.34cqw, 5px) !important;
    grid-template-columns: var(--purchase-grid-columns) !important;
    padding-inline: clamp(7px, 0.78cqw, 10px) !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-title-group {
    grid-column: 2 / 4 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-subtotals {
    display: contents !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric {
    align-items: center !important;
    justify-content: center !important;
    justify-self: stretch !important;
    overflow: visible !important;
    padding-inline: 2px !important;
    text-align: center !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric > span,
  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric > strong {
    justify-self: center !important;
    max-width: 100% !important;
    text-align: center !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-invoice {
    grid-column: 4 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-receive {
    grid-column: 6 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-pay {
    grid-column: 7 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-paid {
    grid-column: 8 !important;
  }
}

/* v144 - Factures: visual table parity with Achats.
   The Client -> Project -> signed quote hierarchy and all invoice behaviour stay
   untouched; only the row geometry and expandable detail surface are aligned. */
.sav-client-invoice-panel .sav-client-invoice-record,
.sav-client-invoice-panel .sav-client-invoice-row,
.sav-client-invoice-panel .purchase-row-details {
  background: #ffffff !important;
}

.sav-client-invoice-panel .purchase-row-details {
  border-top: 0 !important;
  box-sizing: border-box !important;
}

@container (min-width: 921px) {
  .sav-client-invoice-panel .sav-client-invoice-row {
    min-height: 34px !important;
    padding: 3px clamp(7px, 0.78cqw, 10px) !important;
  }

  .sav-client-invoice-panel .sav-invoice-ref-cell {
    height: 28px !important;
  }

  .sav-client-invoice-panel .sav-invoice-total-ttc-cell,
  .sav-client-invoice-panel .sav-invoice-total-ttc-input[readonly],
  .sav-client-invoice-panel .purchase-total {
    height: 23px !important;
    min-height: 23px !important;
  }

  .sav-client-invoice-panel .purchase-rests {
    min-height: 24px !important;
  }

  .sav-client-invoice-panel .row-expand {
    height: 24px !important;
    min-height: 24px !important;
    min-width: 24px !important;
    width: 24px !important;
  }

  .sav-client-invoice-panel .purchase-row-details {
    align-items: center !important;
    column-gap: clamp(3px, 0.34cqw, 5px) !important;
    min-height: 47px !important;
    padding: 3px clamp(7px, 0.78cqw, 10px) !important;
  }

  .sav-client-invoice-panel .purchase-row-details > * {
    align-self: center !important;
  }

  .sav-client-invoice-panel .purchase-row-details > .sav-client-invoice-detail-cell,
  .sav-client-invoice-panel .purchase-row-details > .sav-client-invoice-detail-cell.invoice-detail-cell-percent-only {
    align-content: center !important;
    align-self: center !important;
    gap: 3px !important;
    grid-template-rows: 18px 20px !important;
    min-height: 41px !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-detail-cell label {
    gap: 3px !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    height: 18px !important;
    min-height: 18px !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-detail-cell input {
    height: 18px !important;
    min-height: 18px !important;
    padding: 0 3px !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-status-select {
    gap: 3px !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    height: 20px !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-status-value {
    height: 20px !important;
  }
}

/* v145 - Factures: lock every project summary to its matching table column.
   Desktop uses the exact table grid; compact layouts switch to a balanced
   summary grid because the column header itself is intentionally hidden. */
@container (min-width: 921px) {
  .sav-client-invoice-panel .purchase-grid-header > span:nth-child(4),
  .sav-client-invoice-panel .purchase-grid-header > span:nth-child(5),
  .sav-client-invoice-panel .purchase-grid-header > span:nth-child(6),
  .sav-client-invoice-panel .purchase-grid-header > span:nth-child(7),
  .sav-client-invoice-panel .purchase-grid-header > span:nth-child(8) {
    justify-content: center !important;
    text-align: center !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric {
    box-sizing: border-box !important;
    grid-row: 1 !important;
    place-self: center stretch !important;
    width: 100% !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-invoice {
    grid-column: 4 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-receive {
    grid-column: 6 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-pay {
    grid-column: 7 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric-paid {
    grid-column: 8 !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric > span,
  .sav-client-invoice-panel .sav-client-invoice-client-projects .project-metric > strong {
    display: block !important;
    width: 100% !important;
  }
}

.sav-client-invoice-panel .project-metric-invoice > span,
.sav-client-invoice-panel .project-metric-pay > span {
  color: var(--sav-blue) !important;
}

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

.sav-client-invoice-panel .project-metric-paid > span {
  color: #137333 !important;
}

@container (max-width: 920px) {
  .sav-client-invoice-panel .project-subtotals {
    display: grid !important;
    gap: 6px !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    width: 100% !important;
  }

  .sav-client-invoice-panel .project-metric {
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    text-align: center !important;
  }

  .sav-client-invoice-panel .project-metric > span,
  .sav-client-invoice-panel .project-metric > strong {
    justify-self: center !important;
    max-width: 100% !important;
    text-align: center !important;
  }
}

@container (max-width: 560px) {
  .sav-client-invoice-panel .project-subtotals {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* v150 - Factures: TTC-based installments, Achats attachment feedback and
   compact status controls. Business states remain driven by persisted data. */
.sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-attached {
  --invoice-bg: #fff4df !important;
  --invoice-body-bg: #ffffff !important;
  --invoice-border: #f2b94b !important;
  --invoice-icon-bg: #ffedc4 !important;
  --invoice-ink: #9a5800 !important;
}

.sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-attached
  .pdf-icon {
  color: #9a5800 !important;
}

#root .sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-attached
  .sav-client-invoice-amount-input {
  background: #ffffff !important;
  border-color: #f2b94b !important;
}

.sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-missing {
  --invoice-bg: #fff1f2 !important;
  --invoice-body-bg: #ffffff !important;
  --invoice-border: #fecaca !important;
  --invoice-icon-bg: #ffe0e3 !important;
  --invoice-ink: #991b1b !important;
}

.sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-missing
  .pdf-icon {
  color: #991b1b !important;
}

#root .sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-missing
  .sav-client-invoice-amount-input {
  background: #ffffff !important;
  border-color: #fecaca !important;
}

.sav-client-invoice-panel button.sav-client-invoice-status-value:disabled {
  cursor: default !important;
  filter: none !important;
  opacity: 1 !important;
  pointer-events: none !important;
  transform: none !important;
}

.sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-paid
  .pdf-icon {
  color: #166534 !important;
}

#root .sav-client-invoice-panel
  .sav-client-invoice-installment.invoice-summary-paid
  .sav-client-invoice-amount-input {
  background: #ffffff !important;
  border-color: #bbf7d0 !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-select {
  column-gap: 5px !important;
  grid-template-columns: 28px minmax(0, 1fr) !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-label {
  overflow: visible !important;
  white-space: nowrap !important;
}

.sav-client-invoice-panel .sav-client-invoice-status-value {
  justify-self: end !important;
  max-width: 122px !important;
  padding-inline: 4px !important;
  width: calc(100% - 6px) !important;
}

@media (max-width: 760px) {
  .sav-client-invoice-panel .sav-client-invoice-status-select {
    column-gap: 3px !important;
    grid-template-columns: 25px minmax(0, 1fr) !important;
  }

  .sav-client-invoice-panel .sav-client-invoice-status-value {
    max-width: none !important;
    width: calc(100% - 3px) !important;
  }
}

/* v153 - Marge / Finance: Material 3-inspired visual layer.
   This block is intentionally CSS-only: data, filters, charts and business
   behaviour keep using the existing application components. */
main.app-main.sav-finance-main {
  --sav-finance-blue: #1a73e8;
  --sav-finance-green: #137333;
  --sav-finance-orange: #b06000;
  --sav-finance-red: #b3261e;
  --sav-finance-violet: #6250b5;
  --sav-finance-ink: #1f1f1f;
  --sav-finance-muted: #5f6368;
  --sav-finance-border: #e1e5ea;
  --sav-finance-surface-subtle: #f8fafd;
  background: #ffffff !important;
  padding-bottom: 48px !important;
}

.sav-finance-shell {
  gap: 16px !important;
}

.sav-finance-intro {
  gap: 16px !important;
}

.sav-finance-intro p {
  color: #4f5f73 !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.sav-finance-intro > span {
  background: #ffffff !important;
  border: 1px solid var(--sav-finance-border) !important;
  border-radius: 999px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08) !important;
  color: #3c4655 !important;
  padding: 7px 12px !important;
}

.sav-finance-filter-bar {
  gap: 10px !important;
  min-height: 32px !important;
}

.sav-finance-filter-icon {
  display: none !important;
}

.sav-finance-filter-bar .legacy-select-wrap {
  flex-basis: 138px !important;
  margin-right: 0 !important;
  max-width: 138px !important;
  min-width: 138px !important;
  width: 138px !important;
}

.sav-finance-filter-bar .legacy-select {
  background-color: #ffffff !important;
  border: 1px solid #cfd5dc !important;
  border-radius: 999px !important;
  color: var(--sav-finance-ink) !important;
  font-size: 12px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 30px 0 12px !important;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    background-color 160ms ease !important;
  width: 138px !important;
}

.sav-finance-filter-bar .legacy-select:hover {
  background-color: #fbfcfe !important;
  border-color: #aeb7c2 !important;
}

.sav-finance-filter-bar .legacy-select:focus,
.sav-finance-filter-bar .legacy-select:focus-visible {
  border-color: var(--sav-finance-blue) !important;
  box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.16) !important;
  outline: none !important;
}

.sav-finance-context {
  gap: 12px !important;
}

.sav-finance-context > span {
  background: #ffffff !important;
  border: 1px solid var(--sav-finance-border) !important;
  border-radius: 12px !important;
  box-shadow:
    0 1px 2px rgba(60, 64, 67, 0.06),
    0 2px 6px rgba(60, 64, 67, 0.025) !important;
  gap: 7px !important;
  min-height: 64px !important;
  padding: 12px 16px !important;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease !important;
}

.sav-finance-context > span:hover {
  border-color: #cfd5dc !important;
  box-shadow:
    0 1px 2px rgba(60, 64, 67, 0.08),
    0 4px 10px rgba(60, 64, 67, 0.04) !important;
}

.sav-finance-context small,
.sav-finance-panel-title small {
  color: #657184 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.045em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

.sav-finance-context strong {
  color: var(--sav-finance-ink) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

.sav-finance-kpis {
  gap: 12px !important;
}

.sav-finance-kpis .sav-dashboard-metric {
  --sav-dashboard-tone: var(--sav-finance-blue);
  --sav-dashboard-tone-soft: #edf4ff;
  background: #ffffff !important;
  border: 1px solid var(--sav-finance-border) !important;
  border-radius: 16px !important;
  box-shadow:
    0 1px 2px rgba(60, 64, 67, 0.08),
    0 4px 12px rgba(60, 64, 67, 0.035) !important;
  gap: 14px !important;
  grid-template-columns: 40px minmax(0, 1fr) !important;
  min-height: 96px !important;
  overflow: hidden !important;
  padding: 16px !important;
  position: relative !important;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease !important;
}

.sav-finance-kpis .sav-dashboard-metric::before {
  background: var(--sav-dashboard-tone) !important;
  border-radius: 0 0 999px 999px !important;
  content: "" !important;
  height: 3px !important;
  left: 16px !important;
  opacity: 0.9 !important;
  position: absolute !important;
  top: 0 !important;
  width: 40px !important;
}

.sav-finance-kpis .sav-dashboard-metric:hover {
  border-color: #ccd3dc !important;
  box-shadow:
    0 2px 4px rgba(60, 64, 67, 0.1),
    0 8px 20px rgba(60, 64, 67, 0.06) !important;
  transform: translateY(-1px) !important;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="supplier"] {
  --sav-dashboard-tone: var(--sav-finance-blue);
  --sav-dashboard-tone-soft: #edf4ff;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="revenue"] {
  --sav-dashboard-tone: #00897b;
  --sav-dashboard-tone-soft: #eaf7f5;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="margin"] {
  --sav-dashboard-tone: var(--sav-finance-violet);
  --sav-dashboard-tone-soft: #f1efff;
}

.sav-finance-kpis .sav-dashboard-metric-icon {
  border-radius: 12px !important;
  height: 40px !important;
  width: 40px !important;
}

.sav-finance-kpis .sav-dashboard-metric > div {
  row-gap: 4px !important;
}

.sav-finance-kpis .sav-dashboard-metric > div > span {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

.sav-finance-kpis .sav-dashboard-metric strong {
  color: var(--sav-finance-ink) !important;
  font-size: clamp(22px, 1.65vw, 28px) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.05 !important;
  text-overflow: ellipsis !important;
}

.sav-finance-kpis .sav-dashboard-metric small {
  color: var(--sav-finance-muted) !important;
  font-size: 10.5px !important;
  line-height: 1.25 !important;
}

.sav-finance-grid {
  gap: 16px !important;
}

.sav-finance-panel {
  --sav-finance-panel-accent: var(--sav-finance-blue);
  background: #ffffff !important;
  border: 1px solid var(--sav-finance-border) !important;
  border-left-width: 1px !important;
  border-radius: 16px !important;
  box-shadow:
    0 1px 2px rgba(60, 64, 67, 0.08),
    0 5px 16px rgba(60, 64, 67, 0.035) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  padding: 24px !important;
  position: relative !important;
}

.sav-finance-panel::before {
  background: var(--sav-finance-panel-accent) !important;
  border-radius: 0 0 999px 999px !important;
  content: "" !important;
  height: 3px !important;
  left: 24px !important;
  opacity: 0.9 !important;
  position: absolute !important;
  top: 0 !important;
  width: 48px !important;
}

.sav-finance-margin-panel {
  --sav-finance-panel-accent: var(--sav-finance-violet);
  grid-column: span 5 !important;
}

.sav-finance-progress-panel {
  --sav-finance-panel-accent: var(--sav-finance-blue);
  grid-column: span 7 !important;
}

.sav-finance-supplier-panel {
  --sav-finance-panel-accent: #e8710a;
}

.sav-finance-client-panel {
  --sav-finance-panel-accent: var(--sav-finance-green);
}

.sav-finance-panel-title {
  gap: 16px !important;
  margin-bottom: 20px !important;
}

.sav-finance-panel-title > div {
  gap: 6px !important;
}

.sav-finance-panel-title h2 {
  color: var(--sav-finance-ink) !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  letter-spacing: -0.012em !important;
  line-height: 1.25 !important;
}

.sav-finance-panel-title > strong {
  color: #00897b !important;
  font-size: 24px !important;
  font-weight: 600 !important;
}

.sav-finance-metric-list {
  gap: 10px !important;
}

.sav-finance-metric-list .sav-filter-metric-black,
.sav-finance-metric-list .sav-filter-metric-red,
.sav-finance-metric-list .sav-filter-metric-green,
.sav-finance-metric-list .sav-filter-metric-blue,
.sav-finance-metric-list .sav-filter-metric-brand,
.sav-finance-metric-list .sav-filter-metric-margin,
.sav-finance-metric-list .sav-filter-metric-warning,
.sav-finance-metric-list .sav-filter-metric-discount {
  background: #ffffff !important;
  border: 1px solid #e3e7ec !important;
  border-left: 3px solid #9aa3af !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  color: #344054 !important;
  min-height: 54px !important;
  padding: 0 16px !important;
  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease !important;
}

.sav-finance-metric-list .sav-filter-metric-black:hover,
.sav-finance-metric-list .sav-filter-metric-red:hover,
.sav-finance-metric-list .sav-filter-metric-green:hover,
.sav-finance-metric-list .sav-filter-metric-blue:hover,
.sav-finance-metric-list .sav-filter-metric-brand:hover,
.sav-finance-metric-list .sav-filter-metric-margin:hover,
.sav-finance-metric-list .sav-filter-metric-warning:hover,
.sav-finance-metric-list .sav-filter-metric-discount:hover {
  background: #fbfcfe !important;
  border-color: #cfd5dc !important;
  box-shadow: 0 2px 6px rgba(60, 64, 67, 0.06) !important;
}

.sav-finance-metric-list .sav-filter-metric-margin {
  border-left-color: var(--sav-finance-violet) !important;
  color: #55439e !important;
}

.sav-finance-metric-list .sav-filter-metric-brand,
.sav-finance-metric-list .sav-filter-metric-red {
  border-left-color: var(--sav-finance-red) !important;
  color: var(--sav-finance-red) !important;
}

.sav-finance-metric-list .sav-filter-metric-green {
  border-left-color: var(--sav-finance-green) !important;
  color: var(--sav-finance-green) !important;
}

.sav-finance-metric-list .sav-filter-metric-warning {
  border-left-color: #e8710a !important;
  color: var(--sav-finance-orange) !important;
}

.sav-finance-metric-list .sav-filter-metric-blue {
  border-left-color: var(--sav-finance-blue) !important;
  color: #1558ad !important;
}

.sav-finance-metric-list .sav-filter-metric-discount {
  border-left-color: #7b8794 !important;
  color: #4f5d6b !important;
}

.sav-finance-metric-list .sav-filter-metric-black {
  border-left-color: #7b8794 !important;
}

.sav-finance-metric-list .sav-filter-metric-black strong,
.sav-finance-metric-list .sav-filter-metric-red strong,
.sav-finance-metric-list .sav-filter-metric-green strong,
.sav-finance-metric-list .sav-filter-metric-blue strong,
.sav-finance-metric-list .sav-filter-metric-brand strong,
.sav-finance-metric-list .sav-filter-metric-margin strong,
.sav-finance-metric-list .sav-filter-metric-warning strong,
.sav-finance-metric-list .sav-filter-metric-discount strong {
  font-size: clamp(20px, 1.4vw, 24px) !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
}

.sav-finance-metric-list .sav-filter-metric-red small,
.sav-finance-metric-list .sav-filter-metric-brand small,
.sav-finance-metric-list .sav-filter-metric-margin small {
  color: #657184 !important;
  font-size: 11px !important;
}

.sav-finance-progress-legend {
  gap: 8px 10px !important;
  margin: -6px 0 6px !important;
}

.sav-finance-progress-legend > span {
  background: #f8fafc !important;
  border: 1px solid #e5e9ee !important;
  border-radius: 999px !important;
  color: #445064 !important;
  font-size: 10.5px !important;
  gap: 6px !important;
  padding: 5px 8px !important;
}

.sav-finance-progress-legend i {
  flex-basis: 8px !important;
  height: 8px !important;
  width: 8px !important;
}

.sav-chartjs-host.sav-chartjs-finance-progress {
  background: #fbfcfe !important;
  border: 1px solid #e7ebf0 !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
  height: 210px !important;
  margin-top: 10px !important;
  min-height: 210px !important;
  padding: 8px !important;
}

.sav-finance-progress-bases {
  border-top-color: #e6eaf0 !important;
  color: #657184 !important;
  font-size: 10.5px !important;
  margin-top: 10px !important;
  padding-top: 10px !important;
}

.sav-finance-progress-bases strong {
  color: #344054 !important;
  font-weight: 600 !important;
}

@media (max-width: 1180px) {
  .sav-finance-margin-panel,
  .sav-finance-progress-panel {
    grid-column: span 12 !important;
  }

  .sav-finance-supplier-panel,
  .sav-finance-client-panel {
    grid-column: span 6 !important;
  }

  .sav-chartjs-host.sav-chartjs-finance-progress {
    height: 220px !important;
    min-height: 220px !important;
  }
}

@media (max-width: 900px) {
  main.app-main.sav-finance-main {
    padding-inline: 24px !important;
  }

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

  .sav-finance-context > span:last-child {
    grid-column: span 2 !important;
  }

  .sav-finance-supplier-panel,
  .sav-finance-client-panel {
    grid-column: span 12 !important;
  }
}

@media (max-width: 620px) {
  main.app-main.sav-finance-main {
    padding-inline: 16px !important;
  }

  .sav-finance-intro {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .sav-finance-filter-bar .legacy-select-wrap,
  .sav-finance-filter-bar .legacy-select {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  .sav-finance-context,
  .sav-finance-kpis,
  .sav-finance-grid {
    grid-template-columns: 1fr !important;
  }

  .sav-finance-context > span:last-child {
    grid-column: auto !important;
  }

  .sav-finance-panel {
    padding: 20px !important;
  }

  .sav-finance-panel::before {
    left: 20px !important;
  }

  .sav-finance-margin-panel,
  .sav-finance-progress-panel,
  .sav-finance-supplier-panel,
  .sav-finance-client-panel {
    grid-column: auto !important;
  }

  .sav-finance-metric-list .sav-filter-metric-black,
  .sav-finance-metric-list .sav-filter-metric-red,
  .sav-finance-metric-list .sav-filter-metric-green,
  .sav-finance-metric-list .sav-filter-metric-blue,
  .sav-finance-metric-list .sav-filter-metric-brand,
  .sav-finance-metric-list .sav-filter-metric-margin,
  .sav-finance-metric-list .sav-filter-metric-warning,
  .sav-finance-metric-list .sav-filter-metric-discount {
    gap: 8px !important;
    padding-inline: 13px !important;
  }

  .sav-finance-metric-list .sav-filter-metric-black strong,
  .sav-finance-metric-list .sav-filter-metric-red strong,
  .sav-finance-metric-list .sav-filter-metric-green strong,
  .sav-finance-metric-list .sav-filter-metric-blue strong,
  .sav-finance-metric-list .sav-filter-metric-brand strong,
  .sav-finance-metric-list .sav-filter-metric-margin strong,
  .sav-finance-metric-list .sav-filter-metric-warning strong,
  .sav-finance-metric-list .sav-filter-metric-discount strong {
    font-size: 20px !important;
  }
}

#root main.app-main.sav-finance-main {
  background-color: #ffffff !important;
}

#root .sav-finance-grid > .sav-finance-panel {
  border-left: 1px solid var(--sav-finance-border) !important;
}

#root .sav-finance-grid > .sav-finance-margin-panel {
  --sav-finance-panel-accent: var(--sav-finance-violet) !important;
}

#root .sav-finance-grid > .sav-finance-progress-panel {
  --sav-finance-panel-accent: var(--sav-finance-blue) !important;
}

#root .sav-finance-grid > .sav-finance-supplier-panel {
  --sav-finance-panel-accent: #e8710a !important;
}

#root .sav-finance-grid > .sav-finance-client-panel {
  --sav-finance-panel-accent: var(--sav-finance-green) !important;
}

/* v154 - Marge / Finance: exact Dashboard design-system parity.
   Presentation only: the existing Finance data, filters, charts and events stay intact. */
main.app-main.sav-finance-main {
  background: #ffffff !important;
}

.sav-finance-kpis.sav-dashboard-v2-kpis {
  container-type: inline-size !important;
  gap: 8px !important;
  grid-template-columns: repeat(auto-fit, minmax(min(205px, 100%), 1fr)) !important;
}

.sav-finance-kpis .sav-dashboard-metric {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.045) !important;
  container-type: inline-size !important;
  gap: clamp(8px, 4cqw, 12px) !important;
  grid-template-columns: clamp(32px, 2.66vw, 38px) minmax(0, 1fr) !important;
  min-height: clamp(96px, 48cqw, 112px) !important;
  overflow: visible !important;
  padding: clamp(12px, 6cqw, 16px) clamp(11px, 5cqw, 15px) !important;
  transform: none !important;
}

.sav-finance-kpis .sav-dashboard-metric::before {
  content: none !important;
}

.sav-finance-kpis .sav-dashboard-metric:hover {
  border-color: #e2e8f0 !important;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.045) !important;
  transform: none !important;
}

.sav-finance-kpis .sav-dashboard-metric-icon {
  border-radius: 8px !important;
  height: clamp(32px, 2.66vw, 38px) !important;
  width: clamp(32px, 2.66vw, 38px) !important;
}

.sav-finance-kpis .sav-dashboard-metric > div {
  align-content: center !important;
  overflow: visible !important;
  row-gap: clamp(3px, 2cqw, 5px) !important;
}

.sav-finance-kpis .sav-dashboard-metric > div > span {
  font-size: clamp(9.5px, 0.77vw, 11px) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  line-height: 1.18 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-transform: none !important;
  white-space: normal !important;
}

.sav-finance-kpis .sav-dashboard-metric strong {
  color: #202124 !important;
  font-size: clamp(17px, 1.625vw, 26px) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  line-height: 1.12 !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.sav-finance-kpis .sav-dashboard-metric small {
  color: #667085 !important;
  font-size: clamp(9.5px, 0.77vw, 11px) !important;
  font-weight: 400 !important;
  line-height: 1.18 !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

.sav-finance-grid {
  gap: clamp(12px, 1.5vw, 18px) !important;
}

.sav-finance-panel.sav-dashboard-panel {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-left: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.045) !important;
  overflow: hidden !important;
  padding: clamp(20px, 2.4vw, 32px) !important;
}

.sav-finance-panel.sav-dashboard-panel::before {
  content: none !important;
}

.sav-finance-panel .sav-finance-panel-title {
  gap: 16px !important;
  margin-bottom: clamp(18px, 2.2vw, 28px) !important;
}

.sav-finance-panel .sav-finance-panel-title > div {
  gap: 5px !important;
}

.sav-finance-panel .sav-finance-panel-title small {
  color: #667085 !important;
  font-size: clamp(10.5px, 1vw, 12px) !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

.sav-finance-panel .sav-finance-panel-title h2 {
  color: #111827 !important;
  font-size: clamp(17px, 1.55vw, 20px) !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  line-height: 1.25 !important;
  margin: 0 !important;
}

.sav-finance-context {
  gap: 8px !important;
}

.sav-finance-context > span {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.035) !important;
  padding: 13px 16px !important;
}

.sav-finance-context > span:hover {
  border-color: #e2e8f0 !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.035) !important;
}

.sav-finance-context small {
  color: #667085 !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.sav-finance-metric-list {
  gap: 8px !important;
}

.sav-finance-metric-list .sav-filter-metric-black,
.sav-finance-metric-list .sav-filter-metric-red,
.sav-finance-metric-list .sav-filter-metric-green,
.sav-finance-metric-list .sav-filter-metric-blue,
.sav-finance-metric-list .sav-filter-metric-brand,
.sav-finance-metric-list .sav-filter-metric-margin,
.sav-finance-metric-list .sav-filter-metric-warning,
.sav-finance-metric-list .sav-filter-metric-discount {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-left-width: 2px !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  min-height: 50px !important;
  padding: 0 14px !important;
}

.sav-finance-metric-list .sav-filter-metric-black strong,
.sav-finance-metric-list .sav-filter-metric-red strong,
.sav-finance-metric-list .sav-filter-metric-green strong,
.sav-finance-metric-list .sav-filter-metric-blue strong,
.sav-finance-metric-list .sav-filter-metric-brand strong,
.sav-finance-metric-list .sav-filter-metric-margin strong,
.sav-finance-metric-list .sav-filter-metric-warning strong,
.sav-finance-metric-list .sav-filter-metric-discount strong {
  font-size: clamp(19px, 1.35vw, 23px) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
}

.sav-finance-progress-legend {
  gap: 8px 16px !important;
  margin: 0 0 14px !important;
}

.sav-finance-progress-legend > span {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #475569 !important;
  padding: 0 !important;
}

.sav-chartjs-host.sav-chartjs-finance-progress {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin-top: 0 !important;
  padding: 0 !important;
}

@media (max-width: 620px) {
  .sav-finance-panel.sav-dashboard-panel {
    padding: clamp(16px, 5vw, 22px) !important;
  }
}

/* Fees tables use the same discreet inline "Ligne" control as service rows.
   Keep this guard at EOF so legacy document "+" rules cannot restyle it. */
body .sav-quote-document-host .sav-services-kind-savills-fees .sav-fees-line-toolbar {
  align-items: center !important;
  background: #ffffff !important;
  border-bottom: 1px solid #dbe3ee !important;
  display: flex !important;
  height: auto !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  min-height: 24px !important;
  padding: 3px 4px !important;
}

body .sav-quote-document-host .sav-services-kind-savills-fees .sav-fees-line-toolbar .sav-fees-add-line-button {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #dbe3ee !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: #0e2340 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-size: 7px !important;
  font-weight: 700 !important;
  height: 17px !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  min-height: 17px !important;
  min-width: 0 !important;
  padding: 0 5px !important;
  position: static !important;
  transform: none !important;
  white-space: nowrap !important;
  width: auto !important;
}

/* v178 - Factures: lighter signed-quote rows and calmer project hierarchy.
   Scope stays inside the client invoice table so no other project title or row changes. */
.sav-client-invoice-panel
  .sav-client-invoice-client-projects
  .purchase-project-header
  .project-title {
  font-weight: 300 !important;
}

.sav-client-invoice-panel .sav-client-invoice-row {
  background-color: #fafbfc !important;
}
.sav-hierarchy-toggle {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #d8e0eb;
  border-radius: 999px;
  background: #fff;
  color: #4b6077;
  cursor: pointer;
  padding: 0;
  transition:
    background-color 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    transform 0.16s ease;
}

.sav-hierarchy-toggle:hover {
  background: #f3f6fa;
  border-color: #bcc8d8;
  color: #17243a;
}

.sav-hierarchy-toggle svg {
  width: 17px;
  height: 17px;
  transition: transform 0.16s ease;
}

.sav-hierarchy-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.sav-client-invoice-client-header,
.sav-purchase-client-header {
  position: relative;
}

.sav-client-invoice-client-toggle,
.sav-purchase-client-header [data-sav-purchase-client-toggle] {
  margin-left: auto;
}

.sav-client-invoice-client-group.is-collapsed > .sav-client-invoice-client-projects {
  display: none !important;
}

.sav-client-invoice-project {
  position: relative;
}

.sav-client-invoice-project-toggle {
  position: absolute;
  right: 12px;
  top: 10px;
  z-index: 4;
}

.sav-client-invoice-project .purchase-project-header {
  padding-right: 52px;
}

.sav-client-invoice-project-records[hidden],
.purchase-panel.sav-purchase-client-grouped > .purchase-project[hidden] {
  display: none !important;
}

@media (max-width: 760px) {
  .sav-hierarchy-toggle {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }

  .sav-client-invoice-project-toggle {
    right: 8px;
    top: 8px;
  }
}

/* v194: Factures uses the same left hierarchy grammar as Achats.
   The project disclosure and six-dot grip share the first grid column; the
   former house pictogram and right-floating disclosure are no longer used. */
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-toggle {
  align-items: center !important;
  display: inline-flex !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-content: center !important;
  justify-self: start !important;
  position: static !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
  z-index: auto !important;
}

.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-drag {
  color: #9aa0a6 !important;
  fill: currentColor !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  height: 18px !important;
  justify-self: end !important;
  pointer-events: none !important;
  width: 12px !important;
}

.sav-client-invoice-panel .sav-client-invoice-project .purchase-project-header {
  padding-right: clamp(7px, 0.78cqw, 10px) !important;
}

.sav-client-invoice-panel .sav-client-invoice-project-icon {
  display: none !important;
}

@container (max-width: 920px) {
  .sav-client-invoice-panel
    .sav-client-invoice-project
    .purchase-project-header
    .sav-client-invoice-project-drag {
    display: none !important;
  }
}

/* v197: compact, configurable and interactive Dashboard chart library.
   Keep every selector scoped to the Dashboard because the panel primitives
   are also reused by Finance and other business modules. */
main.app-main.sav-dashboard-main:has(.sav-dashboard-shell),
main.app-main.sav-dashboard-main {
  background:
    radial-gradient(circle at 88% 2%, rgba(26, 115, 232, 0.055), transparent 28rem),
    #f6f8fb !important;
}

main.sav-dashboard-main .sav-dashboard-shell {
  gap: 16px !important;
  margin: 0 auto !important;
  max-width: 1680px !important;
}

main.sav-dashboard-main .sav-dashboard-v2-header {
  align-items: end !important;
  display: flex !important;
  gap: 18px !important;
  justify-content: space-between !important;
  margin: 0 0 2px !important;
}

main.sav-dashboard-main .sav-dashboard-toolbar {
  align-items: end !important;
  display: flex !important;
  flex: 0 1 auto !important;
  gap: 12px !important;
  justify-content: flex-end !important;
  min-width: 0 !important;
}

main.sav-dashboard-main .sav-dashboard-period-controls {
  display: grid !important;
  gap: 5px !important;
  min-width: 138px !important;
  width: 138px !important;
}

main.sav-dashboard-main .sav-dashboard-period-controls > span,
main.sav-dashboard-main .sav-dashboard-period-range {
  color: #64748b !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}

main.sav-dashboard-main .sav-dashboard-period-select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: #ffffff !important;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2714%27%20height%3D%2714%27%20viewBox%3D%270%200%2014%2014%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M3.5%205.25L7%208.75L10.5%205.25%27%20stroke%3D%27%23374151%27%20stroke-width%3D%271.75%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E") !important;
  background-position: right 11px center !important;
  background-repeat: no-repeat !important;
  background-size: 14px 14px !important;
  border: 1px solid #cfd5dc !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: #202124 !important;
  cursor: pointer !important;
  font: inherit !important;
  font-size: 12px !important;
  height: 32px !important;
  min-height: 32px !important;
  min-width: 138px !important;
  padding: 0 30px 0 12px !important;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    background-color 160ms ease !important;
  width: 138px !important;
}

main.sav-dashboard-main .sav-dashboard-period-select:hover {
  background-color: #f8fafc !important;
  border-color: #aeb8c4 !important;
}

main.sav-dashboard-main .sav-dashboard-period-select:focus-visible {
  border-color: #1a73e8 !important;
  box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.14) !important;
  outline: none !important;
}

main.sav-dashboard-main .sav-dashboard-period-range {
  max-width: 170px !important;
  padding-bottom: 11px !important;
}

main.sav-dashboard-main .sav-dashboard-v2-kpis {
  gap: 12px !important;
  grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)) !important;
}

main.sav-dashboard-main .sav-dashboard-v2-kpis .sav-dashboard-metric {
  border-color: #dfe6ef !important;
  border-radius: 12px !important;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 7px 20px rgba(15, 23, 42, 0.055) !important;
  min-height: 100px !important;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid {
  display: grid !important;
  gap: 16px !important;
  grid-auto-flow: row dense !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart] {
  --sav-dashboard-chart-accent: #7c8da5;
  background: #ffffff !important;
  border: 1px solid #dfe6ef !important;
  border-left: 1px solid #dfe6ef !important;
  border-radius: 13px !important;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 9px 25px rgba(15, 23, 42, 0.065) !important;
  grid-column: span 6 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 20px !important;
  position: relative !important;
  transition:
    border-color 170ms ease,
    box-shadow 170ms ease,
    transform 170ms ease !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart]::before {
  background: var(--sav-dashboard-chart-accent) !important;
  content: "" !important;
  height: 3px !important;
  inset: 0 0 auto !important;
  opacity: 0.9 !important;
  position: absolute !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="wide"] {
  grid-column: span 8 !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="compact"] {
  grid-column: span 4 !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="standard"] {
  grid-column: span 6 !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="full"] {
  grid-column: 1 / -1 !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="quoteEvolution"] {
  --sav-dashboard-chart-accent: #f9ab00;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="invoiceEvolution"] {
  --sav-dashboard-chart-accent: #188038;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="clientRevenueShare"] {
  --sav-dashboard-chart-accent: #1a73e8;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="quoteStatuses"] {
  --sav-dashboard-chart-accent: #5b5bd6;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="marginEvolution"] {
  --sav-dashboard-chart-accent: #7e57c2;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="revenueEvolution"] {
  --sav-dashboard-chart-accent: #00897b;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="forecasts"] {
  --sav-dashboard-chart-accent: #e30613;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart] h2 {
  color: #172033 !important;
  font-size: clamp(16px, 1.25vw, 18px) !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  margin: 1px 0 4px !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart] .sav-dashboard-chart-scope {
  color: #64748b !important;
  font-size: 11.5px !important;
  line-height: 1.35 !important;
  margin: 0 0 8px !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart] .sav-chartjs-host {
  height: clamp(235px, 20vw, 285px) !important;
  margin-top: 0 !important;
  min-height: 235px !important;
}

main.sav-dashboard-main
  .sav-dashboard-v2-grid
  > [data-dashboard-size="compact"]
  .sav-chartjs-host {
  height: clamp(250px, 21vw, 290px) !important;
  min-height: 250px !important;
}

main.sav-dashboard-main
  .sav-dashboard-v2-grid
  > [data-dashboard-chart="forecasts"]
  .sav-chartjs-host {
  height: clamp(270px, calc(170px + (var(--sav-chart-row-count, 1) * 22px)), 390px) !important;
  min-height: 270px !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart]:focus-within {
  border-color: rgba(26, 115, 232, 0.48) !important;
  box-shadow:
    0 0 0 3px rgba(26, 115, 232, 0.09),
    0 12px 30px rgba(15, 23, 42, 0.09) !important;
}

@media (hover: hover) and (pointer: fine) {
  main.sav-dashboard-main .sav-dashboard-v2-kpis .sav-dashboard-metric:hover,
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart]:hover {
    border-color: #cbd7e5 !important;
    box-shadow:
      0 2px 4px rgba(15, 23, 42, 0.05),
      0 15px 34px rgba(15, 23, 42, 0.1) !important;
    transform: translateY(-2px) !important;
  }
}

@media (max-width: 1080px) {
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="wide"],
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="full"] {
    grid-column: 1 / -1 !important;
  }

  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="compact"],
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="standard"] {
    grid-column: span 6 !important;
  }
}

@media (max-width: 760px) {
  main.app-main.sav-dashboard-main:has(.sav-dashboard-shell),
  main.app-main.sav-dashboard-main {
    padding: 18px 14px 34px !important;
  }

  main.sav-dashboard-main .sav-dashboard-v2-header {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  main.sav-dashboard-main .sav-dashboard-toolbar {
    align-items: stretch !important;
    display: grid !important;
    gap: 7px !important;
    justify-content: stretch !important;
  }

  main.sav-dashboard-main .sav-dashboard-period-controls,
  main.sav-dashboard-main .sav-dashboard-period-select {
    min-width: 0 !important;
    width: 100% !important;
  }

  main.sav-dashboard-main .sav-dashboard-period-select {
    height: 44px !important;
  }

  main.sav-dashboard-main .sav-dashboard-period-range {
    max-width: none !important;
    padding: 0 !important;
  }

  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart],
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="wide"],
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="compact"],
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="standard"],
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-size="full"] {
    grid-column: 1 / -1 !important;
    padding: 16px !important;
  }

  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart] .sav-chartjs-host,
  main.sav-dashboard-main
    .sav-dashboard-v2-grid
    > [data-dashboard-size="compact"]
    .sav-chartjs-host {
    height: 260px !important;
    min-height: 260px !important;
  }

  main.sav-dashboard-main
    .sav-dashboard-v2-grid
    > [data-dashboard-chart="forecasts"]
    .sav-chartjs-host {
    height: clamp(290px, calc(190px + (var(--sav-chart-row-count, 1) * 25px)), 420px) !important;
    min-height: 290px !important;
  }
}

@media (max-width: 420px) {
  main.sav-dashboard-main .sav-dashboard-v2-kpis {
    grid-template-columns: 1fr !important;
  }

  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart] .sav-chartjs-host,
  main.sav-dashboard-main
    .sav-dashboard-v2-grid
    > [data-dashboard-size="compact"]
    .sav-chartjs-host {
    height: 250px !important;
    min-height: 250px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  main.sav-dashboard-main .sav-dashboard-v2-kpis .sav-dashboard-metric,
  main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart] {
    transition: none !important;
  }
}

/* v199: Achats keeps the complete project name visible.
   Only native purchase groups are affected; Factures keeps its own hierarchy. */
.purchase-panel.sav-purchase-client-grouped:not(.sav-client-invoice-panel)
  > .purchase-project
  .project-title-group {
  overflow: visible !important;
}

.purchase-panel.sav-purchase-client-grouped:not(.sav-client-invoice-panel)
  > .purchase-project
  .project-title {
  display: block !important;
  max-width: none !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
  width: 100% !important;
  word-break: normal !important;
}

/* v200: quote numbering uses the same left edge as its N° heading in the
   editor, readonly preview and every printable/PDF representation. */
.sav-quote-document-host .sav-service-header strong:first-child,
.sav-quote-document-host .sav-page-repeated-header strong:first-child,
.sav-quote-document-host .sav-service-export-header > strong:first-child,
.sav-quote-preview-shell .sav-service-export-header > strong:first-child,
.sav-wysiwyg-print-shell .sav-service-export-header > strong:first-child,
body.sav-force-client-print
  .quote-editor-shell
  .sav-service-export-header
  > strong:first-child {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-quote-document-host
  .sav-service-line.sav-edit-only
  > input[data-field="lineNumber"],
.sav-quote-document-host .sav-service-section > span,
.sav-quote-document-host .sav-service-export-line > span:first-child,
.sav-quote-preview-shell .sav-service-export-line > span:first-child,
.sav-wysiwyg-print-shell .sav-service-export-line > span:first-child,
body.sav-force-client-print
  .quote-editor-shell
  .sav-service-export-line
  > span:first-child {
  justify-content: flex-start !important;
  padding-left: 5px !important;
  text-align: left !important;
}

.offer-table thead th:first-child,
.offer-table .cell-number {
  text-align: left !important;
}

/* v205: persisted quote signature date and signed-document edit guard. */
.quote-list-table .quote-list-row {
  grid-template-columns:
    minmax(64px, 0.82fr)
    minmax(62px, 0.75fr)
    minmax(76px, 0.86fr)
    minmax(56px, 0.56fr)
    minmax(62px, 0.6fr)
    minmax(76px, 0.7fr)
    minmax(66px, 0.7fr)
    minmax(66px, 0.7fr)
    minmax(56px, 0.56fr)
    minmax(70px, 0.7fr)
    minmax(74px, 0.74fr)
    minmax(56px, 0.56fr)
    minmax(66px, 0.66fr)
    minmax(72px, 0.7fr)
    minmax(86px, 0.84fr)
    minmax(40px, 40px) !important;
}

.quote-list-table .quote-list-header > .quote-signature-header {
  align-items: flex-start !important;
  background: var(--sav-quote-list-header-bg) !important;
  justify-content: center !important;
}

.quote-list-table .quote-list-line > .quote-signature-cell {
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  padding-inline: 4px !important;
}

.sav-quote-signature-date {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 7px !important;
  box-sizing: border-box !important;
  color: #334155 !important;
  font: inherit !important;
  height: 28px !important;
  min-width: 0 !important;
  padding: 0 3px !important;
  transition:
    background-color 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease !important;
  width: 100% !important;
}

.sav-quote-signature-date:hover {
  background: #f8fafc !important;
  border-color: #d8dee9 !important;
}

.sav-quote-signature-date:focus {
  background: #ffffff !important;
  border-color: #1a73e8 !important;
  box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.14) !important;
  outline: none !important;
}

#root > div.dark .sav-quote-signature-date {
  color: #e2e8f0 !important;
}

.sav-signed-quote-warning-backdrop {
  align-items: center !important;
  background: rgba(15, 23, 42, 0.48) !important;
  display: flex !important;
  inset: 0 !important;
  justify-content: center !important;
  padding: 20px !important;
  position: fixed !important;
  z-index: 410 !important;
}

.sav-signed-quote-warning {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 18px !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.26) !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 18px !important;
  grid-template-columns: 44px minmax(0, 1fr) !important;
  max-width: 560px !important;
  padding: 24px !important;
  width: min(560px, calc(100vw - 32px)) !important;
}

.sav-signed-quote-warning-icon {
  align-items: center !important;
  background: #fef3c7 !important;
  border-radius: 50% !important;
  color: #b45309 !important;
  display: flex !important;
  font-size: 22px !important;
  font-weight: 760 !important;
  height: 44px !important;
  justify-content: center !important;
  width: 44px !important;
}

.sav-signed-quote-warning span {
  color: #b45309 !important;
  display: block !important;
  font-size: 11px !important;
  font-weight: 720 !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 5px !important;
  text-transform: uppercase !important;
}

.sav-signed-quote-warning h2 {
  color: #0f172a !important;
  font-size: 20px !important;
  line-height: 1.2 !important;
  margin: 0 0 8px !important;
}

.sav-signed-quote-warning p {
  color: #5f6368 !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

.sav-signed-quote-warning-actions {
  display: flex !important;
  gap: 10px !important;
  grid-column: 1 / -1 !important;
  justify-content: flex-end !important;
}

.sav-signed-quote-warning-actions button {
  border: 1px solid #dadce0 !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  min-height: 38px !important;
  padding: 0 17px !important;
}

.sav-signed-quote-warning-actions [data-signed-edit-action="cancel"] {
  background: #ffffff !important;
  color: #3c4043 !important;
}

.sav-signed-quote-warning-actions [data-signed-edit-action="continue"] {
  background: #1a73e8 !important;
  border-color: #1a73e8 !important;
  color: #ffffff !important;
}

@media (max-width: 700px) {
  .sav-signed-quote-warning {
    grid-template-columns: 1fr !important;
  }

  .sav-signed-quote-warning-actions {
    flex-direction: column-reverse !important;
  }

  .sav-signed-quote-warning-actions button {
    width: 100% !important;
  }
}

/* Dashboard ordering and fee-chart accents must follow the legacy override layers. */
.sav-dashboard-setting-option {
  cursor: default !important;
}

main.sav-dashboard-main .sav-dashboard-v2-grid > [data-dashboard-chart="feesEvolution"] {
  --sav-dashboard-chart-accent: #d93025 !important;
}

/* Quote editor supplier analysis: the panel is a real layout column, never an
   overlay over the A4 document. It can collapse to one reopening control and
   keeps the full-screen comparison mode independent. */
.sav-quote-editor-shell.sav-offer-panel-layout {
  /* Use only the horizontal room left after preserving a usable A4 workspace.
     The grid owns both columns, so the supplier panel can grow without ever
     covering the document or its floating row actions. */
  --sav-offer-panel-layout-width: clamp(360px, calc((100vw - 940px) * 0.75), 640px);
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) var(--sav-offer-panel-layout-width) !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  overflow: hidden !important;
  transition: grid-template-columns 180ms cubic-bezier(0.2, 0, 0, 1) !important;
}

.sav-quote-editor-shell.sav-offer-panel-layout.sav-offer-panel-collapsed {
  --sav-offer-panel-layout-width: 52px;
}

.sav-quote-editor-shell.sav-offer-panel-layout.sav-offer-panel-expanded {
  grid-template-columns: minmax(0, 1fr) 0 !important;
}

.sav-quote-editor-shell.sav-offer-panel-layout > .quote-editor-toolbar {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
}

.sav-quote-editor-shell.sav-offer-panel-layout > .quote-editor-canvas {
  box-sizing: border-box !important;
  grid-column: 1 !important;
  grid-row: 2 !important;
  min-height: 0 !important;
  min-width: 0 !important;
  overflow: auto !important;
  width: 100% !important;
}

.sav-quote-editor-shell.sav-offer-panel-layout
  > .sav-offer-import-panel:not(.is-expanded),
.sav-quote-editor-shell.sav-offer-panel-layout
  > .sav-offer-import-panel.is-expanded.is-collapsed {
  align-self: stretch !important;
  bottom: auto !important;
  grid-column: 2 !important;
  grid-row: 2 !important;
  height: 100% !important;
  inset: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  position: relative !important;
  right: auto !important;
  top: auto !important;
  width: 100% !important;
}

.sav-quote-editor-shell.sav-offer-panel-layout
  > .sav-offer-import-panel:not(.is-expanded):not(.is-collapsed) {
  border-bottom: 0 !important;
  border-radius: 16px 0 0 !important;
  border-right: 0 !important;
  box-shadow: -10px 0 26px rgba(32, 33, 36, 0.1) !important;
}

.sav-quote-editor-shell.sav-offer-panel-layout
  > .sav-offer-import-panel.is-expanded:not(.is-collapsed) {
  bottom: 0 !important;
  grid-column: auto !important;
  grid-row: auto !important;
  height: auto !important;
  inset: 58px 0 0 !important;
  position: fixed !important;
  width: auto !important;
}

.sav-offer-import-header > .sav-offer-collapse-button {
  align-items: center;
  background: #ffffff;
  border: 1px solid #d9e0ea;
  border-radius: 10px;
  color: #475569;
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 36px;
  height: 36px;
  justify-content: center;
  order: -1;
  padding: 0;
  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    color 150ms ease,
    transform 150ms ease;
  width: 36px;
}

.sav-offer-import-header > .sav-offer-collapse-button:hover,
.sav-offer-import-header > .sav-offer-collapse-button:focus-visible {
  background: #f6f9ff;
  border-color: color-mix(in srgb, var(--offer-accent, #1a73e8) 42%, #d9e0ea);
  box-shadow: 0 2px 7px rgba(15, 23, 42, 0.1);
  color: var(--offer-accent, #1a73e8);
  outline: 0;
}

.sav-offer-import-header > .sav-offer-collapse-button:active {
  transform: translateY(1px);
}

.sav-offer-import-header > .sav-offer-collapse-button svg {
  fill: none;
  height: 19px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 19px;
}

.sav-offer-import-panel.is-collapsed {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  contain: layout paint style !important;
  overflow: visible !important;
}

.sav-offer-import-panel.is-collapsed .sav-offer-import-header {
  align-items: flex-start !important;
  background: transparent !important;
  border: 0 !important;
  justify-content: center !important;
  min-height: 0 !important;
  overflow: visible !important;
  padding: 8px !important;
}

.sav-offer-import-panel.is-collapsed
  .sav-offer-import-header
  > :not(.sav-offer-collapse-button),
.sav-offer-import-panel.is-collapsed > .sav-offer-import-body {
  display: none !important;
}

@media (max-width: 1100px) {
  .sav-quote-editor-shell.sav-offer-panel-layout {
    --sav-offer-panel-layout-width: clamp(300px, 34vw, 360px);
  }

  .sav-quote-editor-shell.sav-offer-panel-layout.sav-offer-panel-collapsed {
    --sav-offer-panel-layout-width: 52px;
  }
}

@media (max-width: 700px) {
  .sav-quote-editor-shell.sav-offer-panel-layout {
    --sav-offer-panel-layout-width: min(300px, 46vw);
  }

  .sav-quote-editor-shell.sav-offer-panel-layout.sav-offer-panel-collapsed {
    --sav-offer-panel-layout-width: 48px;
  }

  .sav-offer-import-header {
    gap: 8px;
    padding-inline: 9px;
  }
}

/* Quote services tables: root creation controls remain available even when
   every section has been deleted. */
.sav-quote-document-host .sav-service-table-toolbar {
  align-items: center !important;
  background: #fbfcfe !important;
  border-bottom: 1px solid #e5eaf1 !important;
  box-sizing: border-box !important;
  display: flex !important;
  gap: 5px !important;
  justify-content: flex-end !important;
  min-height: 28px !important;
  padding: 4px 8px !important;
  position: relative !important;
  width: 100% !important;
  z-index: 3 !important;
}

.sav-quote-document-host .sav-service-table-toolbar .sav-section-inline-action {
  flex: 0 0 auto !important;
}

.sav-quote-document-host .sav-services-title-field {
  align-items: center !important;
  display: inline-flex !important;
  min-width: 190px !important;
  padding-right: 24px !important;
  position: relative !important;
}

.sav-quote-document-host .sav-services-title-field .sav-services-title-label {
  min-width: 0 !important;
  outline: 0 !important;
}

.sav-quote-document-host .sav-services-title-field .sav-table-category-picker {
  right: 0 !important;
}

/* Each structural destination is represented in the DOM. It stays visually
   neutral at rest and becomes an explicit, labelled target during a row drag. */
.sav-quote-document-host .sav-service-drop-zone {
  align-items: center !important;
  background: transparent !important;
  border: 1px dashed transparent !important;
  box-sizing: border-box !important;
  color: transparent !important;
  display: flex !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  height: 4px !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: -2px 4px !important;
  overflow: hidden !important;
  pointer-events: none !important;
  position: relative !important;
  transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, height 120ms ease, margin 120ms ease !important;
  width: calc(100% - 8px) !important;
  z-index: 2 !important;
}

html.sav-service-drag-active .sav-quote-document-host .sav-service-drop-zone {
  background: color-mix(in srgb, var(--sav-accent, #1a73e8) 5%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--sav-accent, #1a73e8) 38%, #dbe3ee) !important;
  border-radius: 6px !important;
  color: #526174 !important;
  height: 18px !important;
  margin: 2px 4px !important;
  pointer-events: auto !important;
}

html.sav-service-drag-active .sav-quote-document-host .sav-service-drop-zone[data-drop-section-id]:not([data-drop-section-id=""]) {
  background: color-mix(in srgb, #34a853 6%, #ffffff) !important;
  border-color: color-mix(in srgb, #34a853 42%, #dbe3ee) !important;
}

.sav-quote-document-host .sav-service-drop-zone.is-line-drop-target {
  background: color-mix(in srgb, var(--sav-accent, #1a73e8) 12%, #ffffff) !important;
  border-color: var(--sav-accent, #1a73e8) !important;
  color: #1f4f8c !important;
}

/* Parent selection shown only when a root-level “Sous-section” action is
   ambiguous. */
.sav-subsection-parent-overlay {
  align-items: center;
  background: rgba(15, 23, 42, 0.42);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 20px;
  position: fixed;
  z-index: 2147483600;
}

.sav-subsection-parent-dialog {
  background: #ffffff;
  border: 1px solid #dbe3ee;
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.22);
  box-sizing: border-box;
  color: #172033;
  font-family: var(--sav-font-family);
  max-width: 480px;
  padding: 24px;
  width: min(100%, 480px);
}

.sav-subsection-parent-kicker {
  color: #4b4f91;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.sav-subsection-parent-dialog h2 {
  font-size: 20px;
  margin: 7px 0 6px;
}

.sav-subsection-parent-dialog p {
  color: #667085;
  font-size: 13px;
  margin: 0 0 18px;
}

.sav-subsection-parent-dialog label,
.sav-subsection-parent-dialog label > span {
  display: block;
}

.sav-subsection-parent-dialog label > span {
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 7px;
}

.sav-subsection-parent-dialog select {
  background: #ffffff;
  border: 1px solid #cfd8e6;
  border-radius: 10px;
  box-sizing: border-box;
  color: #172033;
  font: inherit;
  min-height: 42px;
  padding: 0 12px;
  width: 100%;
}

.sav-subsection-parent-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 22px;
}

.sav-subsection-parent-actions button {
  background: #ffffff;
  border: 1px solid #d4dbe7;
  border-radius: 999px;
  color: #344054;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  min-height: 40px;
  padding: 0 18px;
}

.sav-subsection-parent-actions button.is-primary {
  background: #4b4f91;
  border-color: #4b4f91;
  color: #ffffff;
}

/* Shared + micro-interaction. The glyph alone rotates; button geometry and
   existing click behaviour remain untouched. */
.sav-shared-plus-glyph {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  justify-content: center;
  line-height: 1;
  transform: rotate(0deg);
  transform-box: border-box;
  transform-origin: center;
  transition: transform 180ms cubic-bezier(0.2, 0, 0, 1);
  vertical-align: middle;
}

svg.sav-shared-plus-glyph {
  display: block;
  height: 1em;
  transform-box: view-box;
  transform-origin: center;
  width: 1em;
}

.sav-tab-primary-add-button > svg.sav-shared-plus-glyph {
  display: block !important;
  height: 28px !important;
  width: 28px !important;
}

.sav-shared-plus-button:hover .sav-shared-plus-glyph,
.sav-shared-plus-button:focus-visible .sav-shared-plus-glyph,
.sav-shared-plus-button:focus-within .sav-shared-plus-glyph {
  transform: rotate(90deg);
}

.sav-shared-plus-pseudo::before {
  align-items: center !important;
  display: inline-flex !important;
  height: auto !important;
  inset: auto !important;
  justify-content: center !important;
  line-height: 1 !important;
  position: static !important;
  transform: rotate(0deg);
  transform-box: border-box;
  transform-origin: center;
  transition: transform 180ms cubic-bezier(0.2, 0, 0, 1) !important;
  width: auto !important;
}

.sav-shared-plus-pseudo:hover::before,
.sav-shared-plus-pseudo:focus-visible::before,
.sav-shared-plus-pseudo:focus-within::before {
  transform: rotate(90deg);
}

.sav-shared-plus-pseudo-materialized::before,
.sav-shared-plus-svg-button::before {
  content: none !important;
  display: none !important;
}

#root button.sav-shared-plus-button,
#root button.sav-shared-plus-button:hover,
#root button.sav-shared-plus-button:focus,
#root button.sav-shared-plus-button:focus-visible,
#root button.sav-shared-plus-button:focus-within,
#root button.sav-shared-plus-button:active,
#root button.sav-shared-plus-button.is-sav-pressed {
  transform: none !important;
}

#root .sav-tab-primary-add-button.sav-shared-plus-button,
#root .sav-doc-plus-main.sav-shared-plus-button,
#root .sav-payment-add.sav-shared-plus-button {
  padding: 0 !important;
}

/* v216: Achats and Factures share one React-safe canonical disclosure component.
   Full selectors deliberately outrank every historical module override so the
   computed controls, not only their class names, remain strictly identical. */
.purchase-panel.sav-purchase-client-grouped > .sav-purchase-client-header,
.sav-client-invoice-panel .sav-client-invoice-client-header {
  align-items: center !important;
  background: #f1f4f8 !important;
  border-color: #dde4ed !important;
  gap: 10px !important;
  min-height: 48px !important;
  padding: 8px 14px !important;
}

.purchase-panel.sav-purchase-client-grouped > .purchase-project .purchase-project-header,
.sav-client-invoice-panel .sav-client-invoice-project .purchase-project-header {
  background: #f8fafc !important;
  border-color: #e5eaf1 !important;
  min-height: 48px !important;
  padding-block: 6px !important;
}

.purchase-panel.sav-purchase-client-grouped > .purchase-project .purchase-grid-row,
.sav-client-invoice-panel .sav-client-invoice-row {
  background: #ffffff !important;
}

.sav-client-invoice-panel .sav-client-invoice-client-projects {
  padding-left: 0 !important;
}

.sav-client-invoice-panel
  .sav-client-invoice-client-projects
  > .sav-client-invoice-project {
  border-left: 0 !important;
  box-shadow: none !important;
}

.purchase-panel.sav-purchase-client-grouped
  > .sav-purchase-client-header
  .sav-purchase-client-toggle,
.sav-client-invoice-panel
  .sav-client-invoice-client-header
  .sav-client-invoice-client-toggle,
.purchase-panel:not(.sav-client-invoice-panel)
  > .purchase-project
  .purchase-project-header
  .sav-purchase-project-toggle,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-toggle,
.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-grid-row
  > .sav-purchase-row-toggle,
.sav-client-invoice-panel
  .sav-client-invoice-row
  > .sav-client-invoice-row-toggle {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d8e0eb !important;
  border-radius: 999px !important;
  box-sizing: border-box !important;
  color: #4b6077 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  justify-content: center !important;
  padding: 0 !important;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    color 160ms ease !important;
}

.purchase-panel.sav-purchase-client-grouped
  > .sav-purchase-client-header
  .sav-purchase-client-toggle,
.sav-client-invoice-panel
  .sav-client-invoice-client-header
  .sav-client-invoice-client-toggle,
.purchase-panel:not(.sav-client-invoice-panel)
  > .purchase-project
  .purchase-project-header
  .sav-purchase-project-toggle,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-toggle {
  flex: 0 0 26px !important;
  height: 26px !important;
  min-height: 26px !important;
  min-width: 26px !important;
  width: 26px !important;
}

.purchase-panel:not(.sav-client-invoice-panel)
  > .purchase-project
  .purchase-project-header
  .sav-purchase-project-toggle,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-toggle {
  justify-self: start !important;
}

.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-grid-row
  > .sav-purchase-row-toggle,
.sav-client-invoice-panel
  .sav-client-invoice-row
  > .sav-client-invoice-row-toggle {
  flex: 0 0 24px !important;
  height: 24px !important;
  justify-self: center !important;
  min-height: 24px !important;
  min-width: 24px !important;
  position: relative !important;
  width: 24px !important;
  z-index: 2 !important;
}

.purchase-panel.sav-purchase-client-grouped
  > .sav-purchase-client-header
  .sav-purchase-client-toggle:hover,
.sav-client-invoice-panel
  .sav-client-invoice-client-header
  .sav-client-invoice-client-toggle:hover,
.purchase-panel:not(.sav-client-invoice-panel)
  > .purchase-project
  .purchase-project-header
  .sav-purchase-project-toggle:hover,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-toggle:hover,
.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-grid-row
  > .sav-purchase-row-toggle:hover,
.sav-client-invoice-panel
  .sav-client-invoice-row
  > .sav-client-invoice-row-toggle:hover,
.purchase-panel.sav-purchase-client-grouped
  > .sav-purchase-client-header
  .sav-purchase-client-toggle:focus-visible,
.sav-client-invoice-panel
  .sav-client-invoice-client-header
  .sav-client-invoice-client-toggle:focus-visible,
.purchase-panel:not(.sav-client-invoice-panel)
  > .purchase-project
  .purchase-project-header
  .sav-purchase-project-toggle:focus-visible,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-toggle:focus-visible,
.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-grid-row
  > .sav-purchase-row-toggle:focus-visible,
.sav-client-invoice-panel
  .sav-client-invoice-row
  > .sav-client-invoice-row-toggle:focus-visible {
  background: #eef4ff !important;
  border-color: #b7c8e2 !important;
  box-shadow: 0 2px 7px rgba(15, 23, 42, 0.09) !important;
  color: #1a73e8 !important;
  outline: 0 !important;
}

.purchase-panel.sav-purchase-client-grouped
  > .sav-purchase-client-header
  .sav-purchase-client-toggle:active,
.sav-client-invoice-panel
  .sav-client-invoice-client-header
  .sav-client-invoice-client-toggle:active,
.purchase-panel:not(.sav-client-invoice-panel)
  > .purchase-project
  .purchase-project-header
  .sav-purchase-project-toggle:active,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-client-invoice-project-toggle:active,
.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-grid-row
  > .sav-purchase-row-toggle:active,
.sav-client-invoice-panel
  .sav-client-invoice-row
  > .sav-client-invoice-row-toggle:active {
  background: #e7effc !important;
  border-color: #aabbd5 !important;
  box-shadow: none !important;
  color: #1557b0 !important;
}

.sav-purchase-client-toggle::before,
.sav-client-invoice-client-toggle::before,
.sav-purchase-project-toggle::before,
.sav-client-invoice-project-toggle::before,
.sav-purchase-row-toggle::before,
.sav-client-invoice-row-toggle::before {
  background-color: currentColor !important;
  content: "" !important;
  display: block !important;
  flex: 0 0 16px !important;
  height: 16px !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m8.75 10 3.25 3.25L15.25 10' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px 16px no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m8.75 10 3.25 3.25L15.25 10' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px 16px no-repeat !important;
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform 160ms ease !important;
  width: 16px !important;
}

.sav-purchase-client-toggle > svg,
.sav-client-invoice-client-toggle > svg,
.sav-purchase-project-toggle > svg,
.sav-client-invoice-project-toggle > svg,
.sav-purchase-row-toggle > svg,
.sav-client-invoice-row-toggle > svg {
  display: none !important;
}

.sav-purchase-client-toggle[aria-expanded="true"]::before,
.sav-client-invoice-client-toggle[aria-expanded="true"]::before,
.sav-purchase-project-toggle[aria-expanded="true"]::before,
.sav-client-invoice-project-toggle[aria-expanded="true"]::before,
.sav-purchase-row-toggle[aria-expanded="true"]::before,
.sav-client-invoice-row-toggle[aria-expanded="true"]::before {
  transform: rotate(180deg);
}

.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-project-header
  .sav-grouping-project-grip,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-grouping-project-grip {
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 18'%3E%3Ccircle cx='3' cy='3' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='9' cy='3' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='3' cy='9' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='9' cy='9' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='3' cy='15' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='9' cy='15' r='1.2' fill='%239aa0a6'/%3E%3C/svg%3E") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 12px 18px !important;
  border: 0 !important;
  color: #9aa0a6 !important;
  fill: currentColor !important;
  height: 18px !important;
  padding: 0 !important;
  stroke: none !important;
  width: 12px !important;
}

.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-grid-row
  > .sav-grouping-row-grip,
.sav-client-invoice-panel
  .sav-client-invoice-row
  > .sav-grouping-row-grip {
  align-items: center !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 18'%3E%3Ccircle cx='3' cy='3' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='9' cy='3' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='3' cy='9' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='9' cy='9' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='3' cy='15' r='1.2' fill='%239aa0a6'/%3E%3Ccircle cx='9' cy='15' r='1.2' fill='%239aa0a6'/%3E%3C/svg%3E") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 12px 18px !important;
  border: 0 !important;
  color: #9aa0a6 !important;
  display: inline-grid !important;
  height: 18px !important;
  justify-content: center !important;
  padding: 0 !important;
  width: 14px !important;
}

.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-grid-row
  > .sav-grouping-row-grip
  svg,
.sav-client-invoice-panel
  .sav-client-invoice-row
  > .sav-grouping-row-grip
  svg {
  fill: currentColor !important;
  height: 18px !important;
  opacity: 0 !important;
  stroke: none !important;
  width: 12px !important;
}

.purchase-panel:not(.sav-client-invoice-panel)
  .purchase-project-header
  .sav-grouping-project-grip
  > *,
.sav-client-invoice-panel
  .sav-client-invoice-project
  .purchase-project-header
  .sav-grouping-project-grip
  > * {
  opacity: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
  .sav-quote-editor-shell.sav-offer-panel-layout,
  .sav-offer-import-panel,
  .sav-offer-import-header > .sav-offer-collapse-button,
  .sav-shared-plus-glyph,
  .sav-shared-plus-pseudo::before,
  .sav-purchase-client-toggle,
  .sav-client-invoice-client-toggle,
  .sav-purchase-project-toggle,
  .sav-client-invoice-project-toggle,
  .sav-purchase-row-toggle,
  .sav-client-invoice-row-toggle,
  .sav-purchase-client-toggle::before,
  .sav-client-invoice-client-toggle::before,
  .sav-purchase-project-toggle::before,
  .sav-client-invoice-project-toggle::before,
  .sav-purchase-row-toggle::before,
  .sav-client-invoice-row-toggle::before {
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}

/* Quote editor: keep the shared Excel action compact and green in every
   interaction state. This final scoped rule intentionally wins over the
   generic white toolbar-button hover rule declared earlier in this file. */
.sav-quote-editor-shell
  .sav-quote-export-actions
  .sav-quote-excel-button {
  background: var(--sav-excel-action, #107c41) !important;
  border-color: var(--sav-excel-action, #107c41) !important;
  color: #ffffff !important;
  height: 34px !important;
  min-height: 34px !important;
  min-width: 34px !important;
  padding: 0 !important;
  width: 34px !important;
}

.sav-quote-editor-shell
  .sav-quote-export-actions
  .sav-quote-excel-button:hover {
  background: var(--sav-excel-action-hover, #0b6b35) !important;
  border-color: var(--sav-excel-action-hover, #0b6b35) !important;
  color: #ffffff !important;
}

.sav-quote-editor-shell
  .sav-quote-export-actions
  .sav-quote-excel-button:focus-visible {
  background: var(--sav-excel-action, #107c41) !important;
  border-color: var(--sav-excel-action, #107c41) !important;
  box-shadow: 0 0 0 3px rgba(16, 124, 65, 0.22) !important;
  color: #ffffff !important;
}

/* v226 repair: restore the quiet row separators removed by later dense-table
   overrides. The line belongs to the row itself so filtering and reordering do
   not leave detached pseudo-elements behind. */
.project-list-table .project-list-line,
.quote-list-table .quote-list-line {
  border-bottom: 1px solid #e5e9f0 !important;
  box-sizing: border-box !important;
}

.project-list-table .project-list-line:last-child,
.quote-list-table .quote-list-line:last-child {
  border-bottom-color: #dce3ec !important;
}

/* v245 - Marge / Projet: Google-inspired financial workspace.
   The filter toolbar and its controls intentionally remain untouched. */
main.app-main.sav-finance-main {
  --sav-google-blue: #1a73e8;
  --sav-google-blue-soft: #e8f0fe;
  --sav-google-green: #188038;
  --sav-google-green-soft: #e6f4ea;
  --sav-google-yellow: #f9ab00;
  --sav-google-yellow-soft: #fef7e0;
  --sav-google-red: #d93025;
  --sav-google-red-soft: #fce8e6;
  --sav-google-violet: #7e57c2;
  --sav-google-violet-soft: #f3e8fd;
  --sav-google-ink: #202124;
  --sav-google-muted: #5f6368;
  --sav-google-border: #dfe3eb;
  background: linear-gradient(180deg, #f8fafd 0, #ffffff 250px) !important;
}

.sav-finance-shell {
  gap: 18px !important;
}

.sav-finance-context {
  gap: 12px !important;
}

.sav-finance-context > span {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid var(--sav-google-border) !important;
  border-radius: 14px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08) !important;
  min-height: 68px !important;
  padding: 14px 16px !important;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease !important;
}

.sav-finance-context > span:hover {
  border-color: #c6d5eb !important;
  box-shadow: 0 3px 8px rgba(60, 64, 67, 0.12) !important;
  transform: translateY(-1px) !important;
}

.sav-finance-context small {
  color: #6b7280 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.035em !important;
  text-transform: uppercase !important;
}

.sav-finance-context strong {
  color: var(--sav-google-ink) !important;
  font-size: 14px !important;
  font-weight: 550 !important;
}

.sav-finance-kpis.sav-dashboard-v2-kpis {
  gap: 12px !important;
}

.sav-finance-kpis .sav-dashboard-metric {
  --sav-dashboard-tone: var(--sav-google-blue);
  --sav-dashboard-tone-soft: var(--sav-google-blue-soft);
  background: #ffffff !important;
  border: 1px solid var(--sav-google-border) !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08), 0 1px 3px rgba(60, 64, 67, 0.05) !important;
  min-height: 106px !important;
  overflow: hidden !important;
  position: relative !important;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease !important;
}

.sav-finance-kpis .sav-dashboard-metric::after {
  background: var(--sav-dashboard-tone) !important;
  border-radius: 0 0 999px 999px !important;
  content: "" !important;
  height: 3px !important;
  inset: 0 20px auto !important;
  opacity: 0.82 !important;
  position: absolute !important;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="supplier"] {
  --sav-dashboard-tone: var(--sav-google-blue) !important;
  --sav-dashboard-tone-soft: var(--sav-google-blue-soft) !important;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="revenue"] {
  --sav-dashboard-tone: #00897b !important;
  --sav-dashboard-tone-soft: #e0f2f1 !important;
}

.sav-finance-kpis .sav-dashboard-metric[data-tone="margin"] {
  --sav-dashboard-tone: var(--sav-google-violet) !important;
  --sav-dashboard-tone-soft: var(--sav-google-violet-soft) !important;
}

.sav-finance-kpis .sav-dashboard-metric:hover {
  border-color: color-mix(in srgb, var(--sav-dashboard-tone) 38%, #dfe3eb) !important;
  box-shadow: 0 6px 16px rgba(60, 64, 67, 0.14) !important;
  transform: translateY(-2px) !important;
}

.sav-finance-kpis .sav-dashboard-metric-icon {
  border-radius: 13px !important;
  height: 42px !important;
  width: 42px !important;
}

.sav-finance-kpis .sav-dashboard-metric strong {
  color: var(--sav-google-ink) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}

.sav-finance-grid {
  gap: 16px !important;
}

#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel {
  --sav-finance-panel-tone: var(--sav-google-blue);
  --sav-finance-panel-soft: var(--sav-google-blue-soft);
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid var(--sav-google-border) !important;
  border-radius: 18px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08), 0 2px 8px rgba(60, 64, 67, 0.04) !important;
  overflow: hidden !important;
  padding: clamp(20px, 2vw, 28px) !important;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease !important;
}

#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel:hover {
  border-color: color-mix(in srgb, var(--sav-finance-panel-tone) 30%, #dfe3eb) !important;
  box-shadow: 0 8px 24px rgba(60, 64, 67, 0.13) !important;
  transform: translateY(-2px) !important;
}

#root .sav-finance-grid > .sav-finance-margin-panel {
  --sav-finance-panel-tone: var(--sav-google-violet) !important;
  --sav-finance-panel-soft: var(--sav-google-violet-soft) !important;
  grid-column: span 5 !important;
}

#root .sav-finance-grid > .sav-finance-progress-panel {
  --sav-finance-panel-tone: var(--sav-google-blue) !important;
  --sav-finance-panel-soft: var(--sav-google-blue-soft) !important;
  grid-column: span 7 !important;
}

#root .sav-finance-grid > .sav-finance-supplier-panel {
  --sav-finance-panel-tone: #e37400 !important;
  --sav-finance-panel-soft: var(--sav-google-yellow-soft) !important;
  grid-column: span 6 !important;
}

#root .sav-finance-grid > .sav-finance-client-panel {
  --sav-finance-panel-tone: var(--sav-google-green) !important;
  --sav-finance-panel-soft: var(--sav-google-green-soft) !important;
  grid-column: span 6 !important;
}

.sav-finance-panel .sav-finance-panel-title {
  align-items: center !important;
  margin-bottom: 20px !important;
}

.sav-finance-panel .sav-finance-panel-title-lockup {
  align-items: center !important;
  display: flex !important;
  gap: 12px !important;
  min-width: 0 !important;
}

.sav-finance-panel .sav-finance-panel-icon {
  align-items: center !important;
  background: var(--sav-finance-panel-soft) !important;
  border-radius: 13px !important;
  color: var(--sav-finance-panel-tone) !important;
  display: inline-flex !important;
  flex: 0 0 42px !important;
  height: 42px !important;
  justify-content: center !important;
  width: 42px !important;
}

.sav-finance-panel .sav-finance-panel-icon svg {
  height: 20px !important;
  width: 20px !important;
}

.sav-finance-panel .sav-finance-panel-title-copy {
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
}

.sav-finance-panel .sav-finance-panel-title small {
  color: var(--sav-finance-panel-tone) !important;
  font-size: 10px !important;
  font-weight: 650 !important;
  letter-spacing: 0.055em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

.sav-finance-panel .sav-finance-panel-title h2 {
  color: var(--sav-google-ink) !important;
  font-size: clamp(18px, 1.4vw, 21px) !important;
  font-weight: 600 !important;
  letter-spacing: -0.018em !important;
  line-height: 1.2 !important;
}

.sav-finance-metric-list {
  gap: 10px !important;
}

.sav-finance-metric-list > [data-sav-finance-metric="true"] {
  --sav-finance-row-tone: #5f6368;
  --sav-finance-row-soft: #f1f3f4;
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #e1e5ec !important;
  border-left-width: 1px !important;
  border-radius: 14px !important;
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.04) !important;
  color: var(--sav-google-ink) !important;
  display: grid !important;
  gap: 12px !important;
  grid-template-columns: 36px minmax(0, 1fr) auto !important;
  min-height: 66px !important;
  padding: 10px 14px !important;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease !important;
}

.sav-finance-metric-list > .sav-filter-metric-margin {
  --sav-finance-row-tone: var(--sav-google-violet) !important;
  --sav-finance-row-soft: var(--sav-google-violet-soft) !important;
}

.sav-finance-metric-list > .sav-filter-metric-brand,
.sav-finance-metric-list > .sav-filter-metric-red {
  --sav-finance-row-tone: var(--sav-google-red) !important;
  --sav-finance-row-soft: var(--sav-google-red-soft) !important;
}

.sav-finance-metric-list > .sav-filter-metric-green {
  --sav-finance-row-tone: var(--sav-google-green) !important;
  --sav-finance-row-soft: var(--sav-google-green-soft) !important;
}

.sav-finance-metric-list > .sav-filter-metric-warning {
  --sav-finance-row-tone: #e37400 !important;
  --sav-finance-row-soft: var(--sav-google-yellow-soft) !important;
}

.sav-finance-metric-list > .sav-filter-metric-blue {
  --sav-finance-row-tone: var(--sav-google-blue) !important;
  --sav-finance-row-soft: var(--sav-google-blue-soft) !important;
}

.sav-finance-metric-list > .sav-filter-metric-discount {
  --sav-finance-row-tone: #5f6368 !important;
  --sav-finance-row-soft: #f1f3f4 !important;
}

.sav-finance-metric-list > [data-sav-finance-metric="true"]:hover {
  background: color-mix(in srgb, var(--sav-finance-row-soft) 42%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--sav-finance-row-tone) 35%, #dfe3eb) !important;
  box-shadow: 0 4px 12px rgba(60, 64, 67, 0.11) !important;
  transform: translateX(2px) !important;
}

.sav-finance-metric-list .sav-finance-metric-icon {
  align-items: center !important;
  background: var(--sav-finance-row-soft) !important;
  border-radius: 11px !important;
  color: var(--sav-finance-row-tone) !important;
  display: inline-flex !important;
  height: 36px !important;
  justify-content: center !important;
  width: 36px !important;
}

.sav-finance-metric-list .sav-finance-metric-icon svg {
  height: 17px !important;
  width: 17px !important;
}

.sav-finance-metric-list .sav-finance-metric-copy {
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
}

.sav-finance-metric-list .sav-finance-metric-copy > span {
  color: #3c4043 !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}

.sav-finance-metric-list .sav-finance-metric-copy small {
  color: var(--sav-google-muted) !important;
  font-size: 10.5px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
}

.sav-finance-metric-list > [data-sav-finance-metric="true"] > strong {
  color: var(--sav-google-ink) !important;
  font-size: clamp(18px, 1.35vw, 23px) !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 650 !important;
  letter-spacing: -0.018em !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.sav-finance-progress-legend {
  gap: 7px !important;
  margin: -4px 0 12px 54px !important;
}

.sav-finance-progress-legend > span {
  background: #f8fafd !important;
  border: 1px solid #e3e7ed !important;
  border-radius: 999px !important;
  color: #5f6368 !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  padding: 5px 9px !important;
}

.sav-finance-progress-legend i,
.sav-finance-progress-detail-row i {
  background: #ea4335 !important;
  border-radius: 999px !important;
}

.sav-finance-progress-legend .is-pending i,
.sav-finance-progress-detail-row .is-pending i {
  background: #f9ab00 !important;
}

.sav-finance-progress-legend .is-paid i,
.sav-finance-progress-detail-row .is-paid i {
  background: #34a853 !important;
}

.sav-chartjs-host.sav-chartjs-finance-progress {
  background: #f8fafd !important;
  border: 1px solid #e1e5ec !important;
  border-radius: 16px !important;
  height: 190px !important;
  margin-top: 0 !important;
  min-height: 190px !important;
  padding: 12px !important;
}

.sav-finance-progress-details {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  margin-top: 12px !important;
}

.sav-finance-progress-detail-row {
  background: #ffffff !important;
  border: 1px solid #e1e5ec !important;
  border-radius: 14px !important;
  display: grid !important;
  gap: 9px !important;
  padding: 12px !important;
}

.sav-finance-progress-detail-row > header {
  align-items: center !important;
  display: flex !important;
  gap: 10px !important;
  justify-content: space-between !important;
}

.sav-finance-progress-detail-row > header > span {
  color: #3c4043 !important;
  font-size: 11.5px !important;
  font-weight: 650 !important;
}

.sav-finance-progress-detail-row > header > strong {
  color: var(--sav-google-ink) !important;
  font-size: 12px !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 650 !important;
  white-space: nowrap !important;
}

.sav-finance-progress-detail-row > div {
  display: grid !important;
  gap: 6px !important;
}

.sav-finance-progress-detail-row > div > span {
  align-items: center !important;
  display: grid !important;
  gap: 7px !important;
  grid-template-columns: 7px minmax(0, 1fr) auto !important;
}

.sav-finance-progress-detail-row i {
  display: inline-block !important;
  height: 7px !important;
  width: 7px !important;
}

.sav-finance-progress-detail-row > div > span > span {
  align-items: baseline !important;
  display: flex !important;
  gap: 5px !important;
  min-width: 0 !important;
}

.sav-finance-progress-detail-row b {
  color: #5f6368 !important;
  font-size: 9.5px !important;
  font-weight: 500 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-finance-progress-detail-row small {
  color: #80868b !important;
  font-size: 9px !important;
  white-space: nowrap !important;
}

.sav-finance-progress-detail-row > div > span > strong {
  color: #3c4043 !important;
  font-size: 10px !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 650 !important;
  white-space: nowrap !important;
}

.sav-finance-progress-bases {
  border-top: 0 !important;
  color: #6b7280 !important;
  margin-top: 10px !important;
  padding-top: 0 !important;
}

@media (max-width: 1180px) {
  #root .sav-finance-grid > .sav-finance-margin-panel,
  #root .sav-finance-grid > .sav-finance-progress-panel {
    grid-column: span 12 !important;
  }
}

@media (max-width: 900px) {
  #root .sav-finance-grid > .sav-finance-supplier-panel,
  #root .sav-finance-grid > .sav-finance-client-panel {
    grid-column: span 12 !important;
  }

  .sav-finance-progress-details {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 620px) {
  #root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel {
    grid-column: auto !important;
    padding: 18px !important;
  }

  .sav-finance-panel .sav-finance-panel-icon {
    flex-basis: 38px !important;
    height: 38px !important;
    width: 38px !important;
  }

  .sav-finance-progress-legend {
    margin-left: 0 !important;
  }

  .sav-finance-metric-list > [data-sav-finance-metric="true"] {
    gap: 10px !important;
    grid-template-columns: 34px minmax(0, 1fr) !important;
    padding: 10px 12px !important;
  }

  .sav-finance-metric-list > [data-sav-finance-metric="true"] > strong {
    grid-column: 2 !important;
    justify-self: start !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sav-finance-context > span,
  .sav-finance-kpis .sav-dashboard-metric,
  #root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel,
  .sav-finance-metric-list > [data-sav-finance-metric="true"] {
    transition: none !important;
  }
}

/* v248 cascade lock: these rules intentionally follow every legacy Finance layer. */
main.app-main.sav-finance-main {
  background: #ffffff !important;
}

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

.sav-finance-kpis .sav-dashboard-metric {
  min-height: 100px !important;
}

#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel,
#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel:hover {
  border-radius: 20px !important;
  transform: none !important;
}

#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel {
  box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08), 0 6px 18px rgba(60, 64, 67, 0.045) !important;
}

#root .sav-finance-grid > .sav-finance-panel.sav-dashboard-panel:hover {
  box-shadow: 0 1px 3px rgba(60, 64, 67, 0.1), 0 10px 28px rgba(60, 64, 67, 0.09) !important;
}

@media (max-width: 900px) {
  .sav-finance-kpis.sav-dashboard-v2-kpis {
    grid-template-columns: 1fr !important;
  }
}
