:root {
  /* === New monochrome system === */
  --bg:        #f5f5f6;
  --surface:   #ffffff;
  --surface-2: #fafafa;
  --border:    #e6e6e8;
  --border-strong: #d4d4d8;
  --text:      #18181b;
  --text-muted: #71717a;
  --text-soft: #a1a1aa;
  --accent:    #18181b;
  --accent-soft: #f4f4f5;
  --pill-green-bg: #e8f5ee; --pill-green-fg: #1f7a44;
  --pill-yellow-bg: #fef7e0; --pill-yellow-fg: #8a6300;
  --pill-blue-bg:  #e8eefa;  --pill-blue-fg: #1e3a8a;
  --pill-purple-bg: #f1ebfa; --pill-purple-fg: #6b21a8;
  --pill-red-bg:   #fdebec;  --pill-red-fg: #9a1f2b;
  --pill-gray-bg:  #f4f4f5;  --pill-gray-fg: #52525b;
  --radius-sm: 6px;
  --radius:    8px;
  --radius-lg: 12px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.04);
  --shadow:    0 4px 16px rgba(0,0,0,.06);
  --font: ui-sans-serif, -apple-system, "SF Pro Text", "Inter", system-ui, sans-serif;

  /* Legacy aliases (mantenuti per non rompere selettori esistenti finché non rifatti) */
  --ink: var(--text);
  --ink-soft: var(--text-muted);
  --paper: var(--bg);
  --paper-deep: var(--surface-2);
  --line: var(--border);
  --walnut: var(--text);
  --walnut-dark: var(--text-muted);
  --blueprint: var(--text);
  --white: var(--surface);
  --sand: var(--accent-soft);
  --green: var(--pill-green-fg);
  --wine: var(--pill-red-fg);
  --muted: var(--text-muted);
  --gold: #b88a3e;
  --sidebar: 256px;
}

.cash-print-sheet {
  display: none;
}

@media print {
  @page cash-sheet {
    size: A4 portrait;
    margin: 6mm;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) {
    page: cash-sheet;
    margin: 0 !important;
    background: #fff !important;
    color: #111827 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .sidebar,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .topbar,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .cash-toolbar,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .cash-status,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .toast,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .cash-board {
    display: none !important;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .app-shell,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .app-main,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .workspace,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .cash-shell,
  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) #cashSheetForm {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .view {
    display: none !important;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) #cashView {
    display: block !important;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .cash-print-sheet {
    width: 100% !important;
    display: grid !important;
    grid-template-rows: auto auto auto auto auto;
    gap: 2mm;
    color: #111827 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 7.1pt !important;
    line-height: 1.16 !important;
  }

  .cash-print-sheet,
  .cash-print-sheet * {
    box-sizing: border-box;
  }

  .cash-print-header,
  .cash-print-summary,
  .cash-print-section,
  .cash-print-footer {
    border: .25mm solid #c9cbd1;
    border-radius: 0;
    background: #fff;
    break-inside: avoid;
    page-break-inside: avoid;
    overflow: hidden;
  }

  .cash-print-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 62mm 48mm;
    min-height: 17mm;
    border-color: #111827;
  }

  .cash-print-brand,
  .cash-print-meta,
  .cash-print-total,
  .cash-print-final {
    display: grid;
    align-content: center;
  }

  .cash-print-brand {
    gap: 1.2mm;
    padding: 3mm 4mm;
    border-left: 2mm solid #111827;
    border-right: .25mm solid #d9dbe1;
  }

  .cash-print-brand span,
  .cash-print-meta span,
  .cash-print-total span,
  .cash-print-summary-head span,
  .cash-print-section-title span,
  .cash-print-row-head span,
  .cash-print-notes span,
  .cash-print-final span {
    color: #6b7280;
    font-size: 5.9pt;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .cash-print-brand strong {
    color: #111827;
    font-size: 14pt;
    font-weight: 850;
    line-height: 1;
  }

  .cash-print-meta {
    grid-template-columns: 1fr 1fr;
    border-right: .25mm solid #d9dbe1;
  }

  .cash-print-meta div {
    display: grid;
    align-content: center;
    gap: 1mm;
    padding: 2.8mm 3mm;
  }

  .cash-print-meta div + div {
    border-left: .25mm solid #e5e7eb;
  }

  .cash-print-meta strong {
    color: #111827;
    font-size: 10.5pt;
    font-weight: 800;
  }

  .cash-print-total {
    justify-items: end;
    gap: 1.2mm;
    padding: 3mm 4mm;
    background: #f3f4f6;
  }

  .cash-print-total strong {
    color: #111827;
    font-size: 14pt;
    font-weight: 900;
    line-height: 1;
  }

  .cash-print-summary-head,
  .cash-print-section-title {
    min-height: 7.2mm;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3mm;
    padding: 1.7mm 2.6mm;
    background: #f8f9fb;
    border-bottom: .25mm solid #d9dbe1;
  }

  .cash-print-summary-head strong,
  .cash-print-section-title em {
    color: #111827;
    font-size: 8.3pt;
    font-style: normal;
    font-weight: 850;
    white-space: nowrap;
  }

  .cash-print-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .cash-print-summary-grid div {
    min-height: 13mm;
    display: grid;
    align-content: center;
    gap: 1.2mm;
    padding: 2mm 2.6mm;
    border-right: .25mm solid #e5e7eb;
  }

  .cash-print-summary-grid div:last-child {
    border-right: 0;
  }

  .cash-print-summary-grid span {
    color: #6b7280;
    font-size: 6.1pt;
    font-weight: 800;
    text-transform: uppercase;
  }

  .cash-print-summary-grid strong {
    min-height: 8pt;
    color: #111827;
    font-size: 9.5pt;
    font-weight: 850;
    text-align: right;
  }

  .cash-print-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2mm;
    align-items: start;
  }

  .cash-print-section-title div {
    display: grid;
    gap: .5mm;
  }

  .cash-print-section-title strong {
    color: #111827;
    font-size: 8.6pt;
    font-weight: 850;
    line-height: 1;
  }

  .cash-print-table {
    display: grid;
  }

  .cash-print-row {
    min-height: 5.8mm;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 25mm 31mm;
    border-bottom: .25mm solid #eceef2;
  }

  .cash-print-row:last-child {
    border-bottom: 0;
  }

  .cash-print-row span {
    min-width: 0;
    display: flex;
    align-items: center;
    padding: 1mm 1.8mm;
    border-right: .25mm solid #eceef2;
    color: #111827;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .cash-print-row span:last-child {
    border-right: 0;
  }

  .cash-print-row-head {
    min-height: 4.6mm;
    background: #fbfbfc;
  }

  .cash-print-row-head span {
    color: #6b7280;
    font-size: 5.8pt;
    font-weight: 800;
  }

  .cash-print-row .cash-print-amount {
    justify-content: flex-end;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
  }

  .cash-print-row-two {
    grid-template-columns: minmax(0, 1fr) 34mm;
  }

  .cash-print-withdrawals .cash-print-row:not(.cash-print-row-head) {
    min-height: 9mm;
  }

  .cash-print-footer {
    min-height: 21mm;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 50mm;
  }

  .cash-print-notes {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 1.5mm;
    padding: 2.6mm;
    border-right: .25mm solid #d9dbe1;
  }

  .cash-print-notes p {
    min-height: 12mm;
    margin: 0;
    color: #111827;
    overflow: hidden;
    white-space: pre-wrap;
  }

  .cash-print-final {
    justify-items: end;
    gap: 1.5mm;
    padding: 3mm 3.5mm;
    background: #f3f4f6;
  }

  .cash-print-final strong {
    color: #111827;
    font-size: 15pt;
    font-weight: 900;
    line-height: 1;
  }
}

/* Mobilturi product rules and quote row type chooser */
.cd-preset-selector {
  display: grid;
  gap: 13px;
  padding: 16px;
  border: 1px solid #e7e5e1;
  border-radius: 14px;
  background: linear-gradient(135deg, #fcfbf9, #fff);
  flex: 0 0 auto;
}

.cd-preset-selector-head {
  display: grid;
  gap: 3px;
}

.cd-preset-kicker {
  color: #a27a3c;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.cd-preset-selector-head h4 {
  margin: 2px 0 0;
  color: #18181b;
  font-size: 15px;
}

.cd-preset-selector-head p {
  margin: 0;
  color: #71717a;
  font-size: 12px;
}

.cd-preset-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.cd-preset-options:empty {
  display: none;
}

.cd-preset-option {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid #e4e4e7;
  border-radius: 11px;
  background: #fff;
  color: #18181b;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
}

.cd-preset-option:hover {
  border-color: rgba(184,138,62,.42);
  background: #fdfbf7;
}

.cd-preset-option.is-active {
  border-color: #b88a3e;
  background: #fbf7ef;
  box-shadow: 0 0 0 2px rgba(184,138,62,.1);
}

.cd-preset-code {
  color: #9a9aa2;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .12em;
}

.cd-preset-option strong {
  font-size: 13px;
  font-weight: 700;
}

.cd-preset-option small {
  color: #71717a;
  font-size: 11px;
}

.cd-preset-fields {
  display: grid;
  gap: 11px;
}

.cd-preset-fields:empty {
  display: none;
}

.cd-preset-fields-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 2px;
}

.cd-preset-fields-head > div {
  display: grid;
  gap: 2px;
}

.cd-preset-fields-head span {
  color: #9a9aa2;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.cd-preset-fields-head strong {
  color: #18181b;
  font-size: 13px;
  font-weight: 750;
}

.cd-preset-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #e4e4e7;
  border-radius: 9px;
  background: #fff;
  color: #18181b;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
  transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
}

.cd-preset-add svg {
  width: 15px;
  height: 15px;
}

.cd-preset-add:hover {
  border-color: #d4d4d8;
  background: #fafafa;
}

.cd-preset-article-list {
  display: grid;
  gap: 8px;
}

.cd-preset-empty {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 1px dashed #dcdce1;
  border-radius: 12px;
  background: #fafafa;
}

.cd-preset-empty.is-hidden {
  display: none;
}

.cd-preset-empty > i {
  width: 20px;
  height: 20px;
  color: #71717a;
  justify-self: center;
}

.cd-preset-empty strong {
  display: block;
  color: #18181b;
  font-size: 13px;
  font-weight: 800;
}

.cd-preset-empty p {
  margin: 3px 0 0;
  color: #71717a;
  font-size: 12px;
  line-height: 1.35;
}

.cd-preset-article-row {
  display: grid;
  grid-template-columns: 34px minmax(170px, 1.25fr) minmax(104px, .68fr) minmax(92px, .42fr) minmax(88px, .38fr) minmax(88px, .38fr) 34px;
  gap: 8px;
  align-items: end;
  padding: 10px;
  border: 1px solid #e8e8eb;
  border-radius: 12px;
  background: #fff;
}

.cd-preset-article-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-bottom: 5px;
  border-radius: 8px;
  background: #f4f4f5;
  color: #71717a;
  font-size: 11px;
  font-weight: 800;
}

.cd-preset-fields label {
  display: grid;
  gap: 6px;
}

.cd-preset-fields label > span:first-child {
  color: #71717a;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cd-preset-fields input {
  min-width: 0;
  height: 38px;
  border: 1px solid #e4e4e7;
  border-radius: 10px;
  background: #fff;
  color: #18181b;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  outline: none;
  padding: 0 11px;
  transition: border-color .14s ease, box-shadow .14s ease;
}

.cd-preset-fields input:focus {
  border-color: #b88a3e;
  box-shadow: 0 0 0 3px rgba(184, 138, 62, .12);
}

.cd-preset-fields input[readonly] {
  background: #f4f4f5;
  color: #18181b;
  cursor: default;
}

.cd-preset-discount-stack {
  display: grid;
  gap: 7px;
}

.cd-preset-discount-stack > span {
  color: #71717a;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cd-preset-discount-stack > div {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}

.cd-preset-discount-stack label {
  gap: 4px;
}

.cd-preset-discount-stack label > span:first-child {
  font-size: 9px;
  letter-spacing: 0;
  text-align: center;
}

.cd-preset-discount-stack input {
  height: 34px;
  padding-left: 8px;
  padding-right: 22px;
  text-align: right;
}

.cd-preset-discount-stack .cd-preset-percent em {
  right: 7px;
}

.cd-preset-article-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 38px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: #a1a1aa;
  cursor: pointer;
  transition: color .14s ease, border-color .14s ease, background .14s ease;
}

.cd-preset-article-remove svg {
  width: 16px;
  height: 16px;
}

.cd-preset-article-remove:hover:not(:disabled) {
  border-color: #e4e4e7;
  background: #fafafa;
  color: #18181b;
}

.cd-preset-article-remove:disabled {
  opacity: .35;
  cursor: not-allowed;
}

.cd-preset-money,
.cd-preset-percent {
  position: relative;
  display: block;
}

.cd-preset-money input,
.cd-preset-percent input {
  width: 100%;
  padding-right: 30px;
}

.cd-preset-money em,
.cd-preset-percent em {
  position: absolute;
  top: 50%;
  right: 11px;
  color: #a0a0a8;
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
  transform: translateY(-50%);
}

.qw-add-options {
  display: flex;
  flex-wrap: wrap;
  align-self: flex-start;
  gap: 10px;
  padding: 4px 0 2px;
}

.qw-add-options.is-hidden {
  display: none;
}

.qw-add-option {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 248px;
  padding: 11px 14px;
  border: 1px solid var(--qw-line-soft);
  border-radius: 13px;
  background: #fff;
  color: var(--qw-ink);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .14s ease, background .14s ease, transform .14s ease;
}

.qw-add-option:hover {
  border-color: rgba(184,138,62,.42);
  background: var(--qw-amber-soft);
  transform: translateY(-1px);
}

.qw-add-option-icon {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border-radius: 10px;
  background: var(--qw-paper-soft);
  color: var(--qw-ink);
}

.qw-add-option-icon svg {
  width: 17px;
  height: 17px;
}

.qw-add-option strong,
.qw-add-option small {
  display: block;
}

.qw-add-option strong {
  font-size: 13px;
  font-weight: 720;
}

.qw-add-option small {
  margin-top: 3px;
  color: var(--qw-muted);
  font-size: 11.5px;
}

.qw-add-option small em {
  color: inherit;
  font-style: normal;
  font-weight: 700;
}

.qw-add-option.is-disabled,
.qw-add-option:disabled {
  opacity: .48;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 880px) {
  .cd-preset-options {
    grid-template-columns: 1fr;
  }

  .cd-preset-fields {
    grid-template-columns: 1fr;
  }

  .cd-preset-fields-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .cd-preset-article-row {
    grid-template-columns: 32px minmax(0, 1fr) 34px;
  }

  .cd-preset-article-name,
  .cd-preset-article-row > label:nth-of-type(2),
  .cd-preset-article-row > label:nth-of-type(3),
  .cd-preset-article-row > label:nth-of-type(4),
  .cd-preset-article-row > label:nth-of-type(5) {
    grid-column: 2 / 3;
  }

  .cd-preset-discount-stack {
    grid-column: 2 / 3;
  }

  .cd-preset-article-remove {
    grid-column: 3 / 4;
    grid-row: 1 / 2;
  }

  .qw-add-option {
    min-width: min(100%, 300px);
  }
}

/* Documents workspace */
.documents-canvas {
  display: grid;
  gap: 18px;
  min-height: calc(100vh - 112px);
}

.documents-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 26px;
  padding: 24px 28px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}

.documents-hero h2 {
  margin: 6px 0 5px;
  font-size: 27px;
  line-height: 1.1;
}

.documents-hero p {
  max-width: 600px;
  margin: 0;
  color: var(--text-muted);
}

.documents-hero-flow {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.documents-hero-flow > svg {
  width: 14px;
  color: var(--text-soft);
}

.documents-hero-flow span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text-muted);
  background: var(--surface-2);
  font-size: 12px;
  font-weight: 650;
}

.documents-hero-flow span svg {
  width: 15px;
}

.documents-hero-flow span.is-active {
  border-color: var(--text);
  background: var(--text);
  color: #fff;
}

.documents-layout {
  display: grid;
  grid-template-columns: 270px minmax(520px, 1fr) 316px;
  gap: 16px;
  align-items: start;
  transition: grid-template-columns .22s ease;
}

.documents-layout.is-tree-collapsed {
  grid-template-columns: 76px minmax(600px, 1fr) minmax(350px, 392px);
}

.documents-tree,
.template-editor,
.template-preview-panel {
  min-height: 690px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}

.documents-welcome {
  display: grid;
  grid-column: 2 / -1;
  place-content: center;
  justify-items: center;
  min-height: 690px;
  padding: 42px;
  border: 1px dashed var(--border-strong);
  border-radius: 8px;
  background: var(--surface);
  text-align: center;
}

.documents-welcome-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  margin-bottom: 18px;
  border-radius: 8px;
  background: var(--text);
  color: #fff;
}

.documents-welcome-icon svg {
  width: 25px;
  height: 25px;
}

.documents-welcome h3 {
  margin: 8px 0 7px;
  font-size: 25px;
}

.documents-welcome p {
  max-width: 460px;
  margin: 0;
  color: var(--text-muted);
}

.documents-tree {
  padding: 20px 14px;
  transition: padding .22s ease;
}

.tree-title {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 8px;
  padding: 0 8px 18px;
  border-bottom: 1px solid var(--border);
}

.tree-title-copy {
  display: grid;
  gap: 2px;
}

.tree-title-copy small,
.template-preview-head span {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.tree-title-copy strong {
  font-size: 17px;
}

.tree-toggle {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  flex: 0 0 32px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface);
  color: var(--text-muted);
  cursor: pointer;
}

.tree-toggle svg {
  width: 15px;
  height: 15px;
}

.tree-toggle:hover {
  border-color: var(--border-strong);
  background: var(--surface-2);
  color: var(--text);
}

.documents-tree.is-collapsed {
  min-height: 690px;
  padding: 16px 10px;
}

.documents-tree.is-collapsed .tree-title {
  justify-content: center;
  padding: 0 0 15px;
}

.documents-tree.is-collapsed .tree-title-copy,
.documents-tree.is-collapsed .folder-row span:last-child,
.documents-tree.is-collapsed .template-node span:last-child {
  display: none;
}

.documents-tree.is-collapsed .folder-node {
  margin-top: 12px;
}

.documents-tree.is-collapsed .folder-row,
.documents-tree.is-collapsed .template-node {
  justify-content: center;
  padding: 8px 0;
}

.documents-tree.is-collapsed .folder-branch {
  margin-left: 0;
  padding-left: 0;
}

.documents-tree.is-collapsed .folder-branch::before,
.documents-tree.is-collapsed .folder-node.level-1::before,
.documents-tree.is-collapsed .template-node::before {
  display: none;
}

.folder-node {
  position: relative;
  margin-top: 14px;
}

.folder-row,
.template-node {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.folder-row:hover,
.template-node:hover {
  background: var(--surface-2);
}

.folder-row span:last-child,
.template-node span:last-child {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.folder-row strong,
.template-node strong {
  font-size: 13px;
  line-height: 1.3;
}

.folder-row small,
.template-node small {
  color: var(--text-muted);
  font-size: 11px;
  line-height: 1.35;
}

.folder-icon,
.template-node-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  flex: 0 0 30px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface-2);
  color: var(--text-muted);
}

.folder-icon svg,
.template-node-icon svg {
  width: 16px;
  height: 16px;
}

.folder-branch {
  position: relative;
  margin-left: 24px;
  padding-left: 14px;
}

.folder-branch::before {
  position: absolute;
  top: 0;
  bottom: 19px;
  left: 0;
  width: 1px;
  background: var(--border-strong);
  content: "";
}

.folder-node.level-1::before,
.template-node::before {
  position: absolute;
  left: -14px;
  top: 24px;
  width: 14px;
  height: 1px;
  background: var(--border-strong);
  content: "";
}

.template-node {
  position: relative;
  margin-top: 12px;
  padding: 11px;
  border: 1px solid transparent;
}

.template-node.is-selected {
  border-color: #d6d6d9;
  background: #f6f6f7;
}

.template-node.is-selected .template-node-icon {
  border-color: var(--text);
  background: var(--text);
  color: #fff;
}

.template-editor {
  overflow: hidden;
}

.template-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--border);
}

.template-editor-head h3 {
  margin: 5px 0 4px;
  font-size: 23px;
  line-height: 1.1;
}

.template-editor-head p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
}

.template-editor-actions {
  display: flex;
  gap: 8px;
}

.doc-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 0 13px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font-size: 12.5px;
  font-weight: 650;
  cursor: pointer;
  white-space: nowrap;
}

.doc-btn svg {
  width: 15px;
  height: 15px;
}

.doc-btn:hover {
  background: var(--surface-2);
}

.doc-btn.primary {
  border-color: var(--text);
  background: var(--text);
  color: #fff;
}

.doc-btn.primary:hover {
  background: #000;
}

.template-field-grid {
  max-height: calc(100vh - 285px);
  overflow: auto;
  padding: 0 24px 22px;
}

.template-field-group {
  padding: 20px 0;
  border-bottom: 1px solid var(--border);
}

.template-field-group:last-child {
  border-bottom: 0;
}

.template-field-group > header {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 14px;
}

.template-field-group > header svg {
  width: 16px;
  color: var(--text-muted);
}

.template-field-group h4 {
  margin: 0;
  font-size: 14px;
}

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

.template-fields label {
  gap: 6px;
  color: var(--text-muted);
  font-size: 11.5px;
  font-weight: 650;
}

.template-fields label.is-wide {
  grid-column: 1 / -1;
}

.template-fields input,
.template-fields textarea,
.template-fields select {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface-2);
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  outline: 0;
}

.template-fields input {
  height: 42px;
  padding: 0 11px;
}

.template-fields select {
  height: 42px;
  padding: 0 34px 0 11px;
}

.template-fields textarea {
  min-height: 78px;
  padding: 10px 11px;
  line-height: 1.45;
  resize: vertical;
}

.template-fields input:focus,
.template-fields textarea:focus,
.template-fields select:focus {
  border-color: var(--text);
  background: var(--surface);
  box-shadow: 0 0 0 3px var(--accent-soft);
}

.template-switch-group .template-fields {
  gap: 10px;
}

.template-switch {
  display: flex !important;
  align-items: center;
  gap: 10px !important;
  min-height: 62px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-2);
  cursor: pointer;
}

.template-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  border: 0;
  opacity: 0;
}

.template-switch-control {
  position: relative;
  width: 36px;
  height: 21px;
  flex: 0 0 36px;
  border-radius: 999px;
  background: #dddde1;
  transition: background .18s ease;
}

.template-switch-control::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.12);
  content: "";
  transition: transform .18s ease;
}

.template-switch input:checked + .template-switch-control {
  background: var(--text);
}

.template-switch input:checked + .template-switch-control::after {
  transform: translateX(15px);
}

.template-switch:focus-within {
  border-color: var(--text);
  box-shadow: 0 0 0 3px var(--accent-soft);
}

.template-switch-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.template-switch-copy strong {
  color: var(--text);
  font-size: 12.5px;
}

.template-switch-copy small {
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 500;
}

.template-preview-panel {
  position: sticky;
  top: 20px;
  padding: 18px;
  background: #f8f8f9;
}

.template-preview-head {
  display: grid;
  gap: 2px;
  margin-bottom: 14px;
}

.template-preview-head strong {
  font-size: 15px;
}

.template-preview-sheet {
  display: block;
  min-height: 640px;
  padding: 12px;
  border: 1px solid #dddddf;
  border-radius: 4px;
  background: #eeeeef;
  box-shadow: 0 14px 34px rgba(24,24,27,.06);
  overflow: hidden;
}

.doc-preview-document {
  display: block;
  position: relative;
  box-sizing: border-box;
  height: 616px;
  min-height: 616px;
  padding: 16px 14px;
  border-radius: 2px;
  background: #fff;
  color: #18181b;
  font-size: 7px;
  box-shadow: 0 2px 8px rgba(24,24,27,.08);
}

.doc-preview-document .pdf-fixed-footer {
  position: absolute;
  right: 14px;
  bottom: 16px;
  left: 14px;
}

.doc-preview-document.pdf-density-compact .pdf-fixed-footer {
  right: 12px;
  bottom: 13px;
  left: 12px;
}

.doc-preview-document.pdf-density-spacious .pdf-fixed-footer {
  right: 16px;
  bottom: 19px;
  left: 16px;
}

.doc-preview-document .pdf-fixed-footer .pdf-legal-notes {
  margin-top: 0;
}

.doc-preview-document.pdf-density-compact {
  padding: 13px 12px;
  font-size: 6.5px;
}

.doc-preview-document.pdf-density-spacious {
  padding: 19px 16px;
  font-size: 7.4px;
}

.doc-preview-document .pdf-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--border);
}

.doc-preview-document .pdf-brand {
  display: flex;
  align-items: center;
  gap: 6px;
}

.doc-preview-document .pdf-brand img {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  object-fit: cover;
}

.doc-preview-document.pdf-logo-small .pdf-brand img {
  width: 16px;
  height: 16px;
}

.doc-preview-document.pdf-logo-large .pdf-brand img {
  width: 25px;
  height: 25px;
}

.doc-preview-document .pdf-brand strong,
.doc-preview-document .pdf-quote-id strong {
  display: block;
  font-size: 10px;
  letter-spacing: 0;
  line-height: 1.15;
}

.doc-preview-document .pdf-brand span,
.doc-preview-document .pdf-quote-id span,
.doc-preview-document .pdf-eyebrow,
.doc-preview-document .pdf-client-details span,
.doc-preview-document .pdf-section-title span,
.doc-preview-document .pdf-total-card span,
.doc-preview-document .pdf-financing span {
  display: block;
  color: var(--text-soft);
  font-size: 5px;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.doc-preview-document .pdf-quote-id {
  text-align: right;
}

.doc-preview-document .pdf-quote-id em {
  display: inline-block;
  margin-top: 3px;
  padding: 2px 4px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text-muted);
  font-size: 4.6px;
  font-style: normal;
  font-weight: 750;
  text-transform: uppercase;
}

.doc-preview-document .pdf-client-band,
.doc-preview-document .pdf-table-section,
.doc-preview-document .pdf-summary,
.doc-preview-document .pdf-financing {
  margin-top: 9px;
}

.doc-preview-document.pdf-density-compact .pdf-client-band,
.doc-preview-document.pdf-density-compact .pdf-table-section,
.doc-preview-document.pdf-density-compact .pdf-summary,
.doc-preview-document.pdf-density-compact .pdf-financing {
  margin-top: 6px;
}

.doc-preview-document.pdf-density-spacious .pdf-client-band,
.doc-preview-document.pdf-density-spacious .pdf-table-section,
.doc-preview-document.pdf-density-spacious .pdf-summary,
.doc-preview-document.pdf-density-spacious .pdf-financing {
  margin-top: 12px;
}

.doc-preview-document .pdf-client-card {
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
}

.doc-preview-document .pdf-client-topline {
  display: flex;
  justify-content: space-between;
  gap: 5px;
}

.doc-preview-document .pdf-client-ref {
  color: var(--text-muted);
  font-size: 5px;
  font-weight: 700;
}

.doc-preview-document .pdf-client-main {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
}

.doc-preview-document .pdf-client-avatar {
  display: grid;
  width: 19px;
  height: 19px;
  place-items: center;
  border-radius: 5px;
  background: var(--text);
  color: #fff;
  font-size: 5px;
  font-weight: 750;
}

.doc-preview-document .pdf-client-main strong {
  display: block;
  font-size: 9px;
}

.doc-preview-document .pdf-client-main small {
  display: block;
  margin-top: 1px;
  color: var(--text-muted);
  font-size: 5.5px;
}

.doc-preview-document .pdf-client-details {
  display: grid;
  grid-template-columns: .9fr .9fr 1.35fr;
  gap: 4px;
  margin-top: 6px;
}

.doc-preview-document .pdf-client-details div {
  min-width: 0;
  padding: 4px 5px;
  border-radius: 4px;
  background: var(--surface-2);
}

.doc-preview-document .pdf-client-details strong {
  display: block;
  margin-top: 2px;
  font-size: 5.6px;
  overflow-wrap: anywhere;
}

.doc-preview-document .pdf-section-title {
  margin-bottom: 4px;
}

.doc-preview-document .pdf-lines {
  width: 100%;
  border: 1px solid var(--border);
  border-collapse: separate;
  border-radius: 6px;
  border-spacing: 0;
  overflow: hidden;
}

.doc-preview-document .pdf-lines th {
  padding: 4px 3px;
  background: #f5f5f6;
  color: var(--text-muted);
  font-size: 4.5px;
  font-weight: 750;
  letter-spacing: .09em;
  text-align: left;
  text-transform: uppercase;
}

.doc-preview-document .pdf-lines td {
  padding: 5px 3px;
  border-top: 1px solid var(--border);
  font-size: 5.5px;
  vertical-align: top;
}

.doc-preview-document .pdf-lines th:nth-child(n + 2),
.doc-preview-document .pdf-lines td:nth-child(n + 2) {
  text-align: right;
  white-space: nowrap;
}

.doc-preview-document .pdf-lines td strong,
.doc-preview-document .pdf-lines td span {
  display: block;
}

.doc-preview-document .pdf-lines td span {
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 4.8px;
}

.doc-preview-document .pdf-article-list {
  display: grid;
  gap: 5px;
}

.doc-preview-document .pdf-article-card {
  display: grid;
  gap: 5px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
}

.doc-preview-document .pdf-article-label,
.doc-preview-document .pdf-article-values span {
  display: block;
  color: var(--text-soft);
  font-size: 4.5px;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.doc-preview-document .pdf-article-heading strong {
  display: block;
  margin-top: 2px;
  font-size: 6.2px;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.doc-preview-document .pdf-article-meta {
  display: block;
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 4.8px;
}

.doc-preview-document .pdf-article-values {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3px;
}

.doc-preview-document .pdf-article-values div {
  min-width: 0;
  padding: 3px;
  border-radius: 4px;
  background: var(--surface-2);
}

.doc-preview-document .pdf-article-values strong {
  display: block;
  margin-top: 1px;
  font-size: 5.3px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.doc-preview-document .pdf-summary {
  display: flex;
  gap: 6px;
  justify-content: flex-start;
}

.doc-preview-document.pdf-summary-right .pdf-summary {
  justify-content: flex-end;
}

.doc-preview-document .pdf-summary-list {
  width: 51%;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 6px;
}

.doc-preview-document.pdf-summary-medium .pdf-summary-list {
  width: 58%;
}

.doc-preview-document.pdf-summary-wide .pdf-summary-list {
  width: 64%;
}

.doc-preview-document .pdf-summary-list div {
  display: flex;
  justify-content: space-between;
  gap: 4px;
  padding: 3px 0;
  border-bottom: 1px dotted var(--border);
  font-size: 5.5px;
}

.doc-preview-document .pdf-summary-list div:last-child {
  border-bottom: 0;
}

.doc-preview-document .pdf-summary-list span {
  color: var(--text-muted);
}

.doc-preview-document .pdf-total-card {
  flex: 0 0 39%;
  padding: 7px;
  border-radius: 6px;
  background: var(--text);
  color: #fff;
}

.doc-preview-document.pdf-theme-graphite .pdf-total-card {
  background: #35373e;
}

.doc-preview-document.pdf-theme-outline .pdf-total-card {
  border: 1px solid var(--border-strong);
  background: #fff;
  color: var(--text);
}

.doc-preview-document .pdf-total-card span {
  color: rgba(255,255,255,.62);
}

.doc-preview-document.pdf-theme-outline .pdf-total-card span,
.doc-preview-document.pdf-theme-outline .pdf-total-card small {
  color: var(--text-muted);
}

.doc-preview-document .pdf-total-card strong {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  letter-spacing: 0;
}

.doc-preview-document .pdf-total-card small {
  color: rgba(255,255,255,.6);
  font-size: 5px;
}

.doc-preview-document .pdf-financing {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.doc-preview-document .pdf-financing > div {
  padding: 6px;
  border: 1px solid #e7decf;
  border-radius: 6px;
  background: #fbf9f4;
}

.doc-preview-document .pdf-financing strong {
  display: block;
  margin-top: 3px;
  font-size: 9px;
}

.doc-preview-document .pdf-financing small {
  display: block;
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 4.8px;
  line-height: 1.3;
}

.doc-preview-document .pdf-legal-notes {
  display: grid;
  gap: 3px;
  margin-top: 7px;
  padding-top: 6px;
  border-top: 1px solid var(--border);
}

.doc-preview-document .pdf-legal-note {
  padding: 4px 5px;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: #fafafa;
}

.doc-preview-document .pdf-legal-note span {
  color: var(--text-muted);
  font-size: 4.5px;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.doc-preview-document .pdf-legal-note p {
  margin: 2px 0 0;
  color: var(--text-muted);
  font-size: 4.6px;
  line-height: 1.25;
}

.doc-preview-document .pdf-signatures {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 7px;
}

.doc-preview-document .pdf-signatures.is-single {
  grid-template-columns: 1fr;
}

.doc-preview-document .pdf-signature-card {
  min-height: 19px;
  padding-top: 4px;
  border-top: 1px solid #bfc0c5;
}

.doc-preview-document .pdf-signature-card span {
  color: var(--text-muted);
  font-size: 4.5px;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.doc-preview-document .pdf-signature-card strong,
.doc-preview-document .pdf-signature-card small {
  display: block;
  margin-top: 2px;
  font-size: 5px;
}

.doc-preview-document .pdf-signature-card small {
  color: var(--text-muted);
}

.doc-preview-document .pdf-signature-client {
  text-align: right;
}

@media (max-width: 1380px) {
  .documents-layout {
    grid-template-columns: 235px minmax(460px, 1fr) 276px;
  }

  .documents-layout.is-tree-collapsed {
    grid-template-columns: 70px minmax(500px, 1fr) 330px;
  }
}

@media (max-width: 1100px) {
  .documents-hero {
    display: grid;
  }

  .documents-layout {
    grid-template-columns: 1fr;
  }

  .documents-layout.is-tree-collapsed {
    grid-template-columns: 1fr;
  }

  .documents-tree,
  .documents-welcome,
  .template-editor,
  .template-preview-panel {
    min-height: auto;
  }

  .documents-welcome {
    grid-column: auto;
    min-height: 320px;
  }

  .template-preview-panel {
    position: static;
  }
}

/* Visual document studio */
.workspace.workspace-documents.workspace-template-studio {
  height: 100vh;
  padding: 12px;
  overflow: hidden;
}

.documents-canvas.is-studio-open {
  min-height: 0;
  height: calc(100vh - 24px);
  gap: 0;
}

.documents-canvas.is-studio-open .documents-hero {
  display: none;
}

.documents-layout.is-template-editing {
  grid-template-columns: 258px minmax(0, 1fr);
  gap: 12px;
  height: 100%;
  align-items: stretch;
}

.documents-layout.is-template-editing.is-tree-collapsed {
  grid-template-columns: 62px minmax(0, 1fr);
}

.documents-layout.is-template-editing .documents-tree {
  min-height: 0;
  height: 100%;
  min-width: 0;
}

.template-studio {
  grid-column: 2 / -1;
  display: grid;
  min-height: 0;
  height: 100%;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.template-studio .template-editor-head {
  align-items: center;
  padding: 14px 18px;
}

.template-studio .template-editor-head h3 {
  margin: 2px 0 2px;
  font-size: 20px;
}

.template-studio .section-kicker {
  font-size: 10px;
  letter-spacing: .13em;
}

.template-studio-body {
  display: grid;
  grid-template-columns: 198px minmax(520px, 1fr) 316px;
  min-height: 0;
  overflow: hidden;
}

.template-layers-panel,
.template-inspector-panel {
  min-height: 0;
  background: #fff;
}

.template-layers-panel {
  border-right: 1px solid var(--border);
  padding: 16px 12px;
}

.template-layers-panel > header {
  display: grid;
  gap: 3px;
  margin-bottom: 14px;
  padding: 0 5px;
}

.template-layers-panel > header strong {
  font-size: 15px;
}

.template-layers {
  display: grid;
  gap: 5px;
}

.template-layer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2px;
  border: 1px solid transparent;
  border-radius: 8px;
  transition: border-color .16s ease, background .16s ease;
}

.template-layer:hover {
  background: #f7f7f8;
}

.template-layer.is-selected {
  border-color: #d9d9dd;
  background: #f4f4f5;
}

.template-layer.is-hidden-layer {
  opacity: .58;
}

.template-layer-select {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 9px 6px 9px 9px;
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.template-layer-select > svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: var(--text-muted);
}

.template-layer-select span {
  display: grid;
  min-width: 0;
}

.template-layer-select strong {
  font-size: 12px;
}

.template-layer-select small {
  color: var(--text-muted);
  font-size: 10px;
}

.template-layer-actions {
  display: none;
  gap: 1px;
  padding-right: 4px;
}

.template-layer:hover .template-layer-actions,
.template-layer.is-selected .template-layer-actions {
  display: flex;
}

.template-layer-actions button {
  display: grid;
  width: 20px;
  height: 24px;
  place-items: center;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
}

.template-layer-actions button:hover {
  background: #e8e8ea;
  color: var(--text);
}

.template-layer-actions svg {
  width: 13px;
  height: 13px;
}

.template-artboard-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: calc(100dvh - 116px);
  overflow: hidden;
  border-right: 1px solid var(--border);
  background: #eff0f2;
}

.template-artboard-head {
  display: flex;
  flex: 0 0 43px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border-bottom: 1px solid #dedee2;
  color: var(--text-muted);
  font-size: 11px;
}

.template-artboard-head strong {
  color: var(--text);
  font-size: 12px;
}

.template-artboard {
  display: flex;
  flex: 1 1 auto;
  height: 0;
  justify-content: flex-start;
  align-items: flex-start;
  min-height: 0;
  padding: 24px 24px 48px;
  overflow: scroll;
  overscroll-behavior: contain;
  scrollbar-gutter: stable both-edges;
  background-image: radial-gradient(circle at center, rgba(24,24,27,.035) 0, rgba(24,24,27,.035) 1px, transparent 1px);
  background-size: 16px 16px;
}

.template-artboard .template-preview-sheet {
  --canvas-zoom: .7;
  width: calc(794px * var(--canvas-zoom));
  min-width: calc(794px * var(--canvas-zoom));
  height: calc(1123px * var(--canvas-zoom));
  min-height: calc(1123px * var(--canvas-zoom));
  padding: 0;
  margin: 0 auto;
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.template-artboard .doc-preview-document {
  width: 794px;
  height: 1123px;
  min-height: 1123px;
  padding: 38px 42px;
  border-radius: 0;
  background: #fff;
  color: #18181b;
  font-size: 13px;
  box-shadow: 0 18px 42px rgba(24,24,27,.13);
  transform: scale(var(--canvas-zoom));
  transform-origin: left top;
}

.template-artboard .doc-preview-document .pdf-fixed-footer {
  right: 42px;
  bottom: 38px;
  left: 42px;
}

.template-artboard .doc-preview-document.pdf-density-compact .pdf-fixed-footer {
  right: 38px;
  bottom: 31px;
  left: 38px;
}

.template-artboard .doc-preview-document.pdf-density-spacious .pdf-fixed-footer {
  right: 46px;
  bottom: 46px;
  left: 46px;
}

.template-artboard .doc-preview-document.pdf-density-compact {
  padding: 31px 38px;
  font-size: 12px;
}

.template-artboard .doc-preview-document.pdf-density-spacious {
  padding: 46px;
  font-size: 14px;
}

.template-artboard .doc-preview-document.pdf-type-small {
  font-size: 11.5px;
}

.template-artboard .doc-preview-document.pdf-type-large {
  font-size: 14.13px;
}

.template-artboard .doc-preview-document.pdf-corners-square :is(.pdf-client-card, .pdf-lines, .pdf-article-card, .pdf-article-values div, .pdf-summary-list, .pdf-total-card, .pdf-financing > div, .pdf-legal-note) {
  border-radius: 2px;
}

.template-artboard .doc-preview-document.pdf-corners-rounded :is(.pdf-client-card, .pdf-lines, .pdf-article-card, .pdf-article-values div, .pdf-summary-list, .pdf-total-card, .pdf-financing > div, .pdf-legal-note) {
  border-radius: 18px;
}

.template-artboard .doc-preview-document .pdf-hero {
  gap: 18px;
  padding-bottom: 13px;
}

.template-artboard .doc-preview-document .pdf-brand {
  gap: 10px;
}

.template-artboard .doc-preview-document .pdf-brand img {
  width: 38px;
  height: 38px;
  border-radius: 10px;
}

.template-artboard .doc-preview-document.pdf-logo-small .pdf-brand img {
  width: 30px;
  height: 30px;
}

.template-artboard .doc-preview-document.pdf-logo-large .pdf-brand img {
  width: 46px;
  height: 46px;
}

.template-artboard .doc-preview-document .pdf-brand strong,
.template-artboard .doc-preview-document .pdf-quote-id strong {
  font-size: 20px;
  letter-spacing: -.03em;
}

.template-artboard .doc-preview-document .pdf-brand span,
.template-artboard .doc-preview-document .pdf-quote-id span,
.template-artboard .doc-preview-document .pdf-eyebrow,
.template-artboard .doc-preview-document .pdf-client-details span,
.template-artboard .doc-preview-document .pdf-section-title span,
.template-artboard .doc-preview-document .pdf-total-card span,
.template-artboard .doc-preview-document .pdf-financing span {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
}

.template-artboard .doc-preview-document .pdf-quote-id em {
  margin-top: 5px;
  padding: 4px 9px;
  font-size: 9px;
}

.template-artboard .doc-preview-document .pdf-client-band {
  margin-top: 12px;
}

.template-artboard .doc-preview-document :is(.pdf-table-section, .pdf-summary, .pdf-financing) {
  margin-top: 14px;
}

.template-artboard .doc-preview-document.pdf-density-compact .pdf-client-band {
  margin-top: 12px;
}

.template-artboard .doc-preview-document.pdf-density-compact :is(.pdf-table-section, .pdf-summary, .pdf-financing) {
  margin-top: 11px;
}

.template-artboard .doc-preview-document.pdf-density-spacious .pdf-client-band {
  margin-top: 12px;
}

.template-artboard .doc-preview-document.pdf-density-spacious :is(.pdf-table-section, .pdf-summary, .pdf-financing) {
  margin-top: 20px;
}

.template-artboard .doc-preview-document .pdf-client-card {
  padding: 14px 16px;
  border-radius: 18px;
}

.template-artboard .doc-preview-document .pdf-client-main {
  gap: 12px;
  margin-top: 10px;
  padding-bottom: 11px;
}

.template-artboard .doc-preview-document .pdf-client-avatar {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  font-size: 11px;
}

.template-artboard .doc-preview-document .pdf-client-main strong {
  font-size: 20px;
}

.template-artboard .doc-preview-document .pdf-client-main small {
  margin-top: 3px;
  font-size: 12px;
}

.template-artboard .doc-preview-document .pdf-client-ref {
  font-size: 9px;
}

.template-artboard .doc-preview-document .pdf-client-details {
  gap: 8px;
  margin-top: 11px;
}

.template-artboard .doc-preview-document .pdf-client-details div {
  padding: 8px 10px;
  border-radius: 10px;
}

.template-artboard .doc-preview-document .pdf-client-details strong {
  margin-top: 3px;
  font-size: 12px;
}

.template-artboard .doc-preview-document .pdf-section-title {
  margin-bottom: 7px;
}

.template-artboard .doc-preview-document .pdf-lines {
  border-radius: 12px;
}

.template-artboard .doc-preview-document .pdf-lines th {
  padding: 8px 9px;
  font-size: 9px;
  letter-spacing: .15em;
}

.template-artboard .doc-preview-document .pdf-lines td {
  padding: 10px 9px;
  font-size: 13px;
}

.template-artboard .doc-preview-document .pdf-lines td span {
  margin-top: 4px;
  font-size: 10px;
}

.template-artboard .doc-preview-document .pdf-article-list {
  gap: 8px;
}

.template-artboard .doc-preview-document .pdf-article-card {
  gap: 8px;
  padding: 11px 12px;
  border-radius: 12px;
}

.template-artboard .doc-preview-document .pdf-article-label,
.template-artboard .doc-preview-document .pdf-article-values span {
  font-size: 9px;
  letter-spacing: .15em;
}

.template-artboard .doc-preview-document .pdf-article-heading strong {
  margin-top: 4px;
  font-size: 14px;
}

.template-artboard .doc-preview-document .pdf-article-meta {
  margin-top: 4px;
  font-size: 10px;
}

.template-artboard .doc-preview-document .pdf-article-values {
  gap: 6px;
}

.template-artboard .doc-preview-document .pdf-article-values div {
  padding: 7px 8px;
  border-radius: 9px;
}

.template-artboard .doc-preview-document .pdf-article-values strong {
  margin-top: 4px;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.template-artboard .doc-preview-document .pdf-summary {
  display: grid;
  grid-template-columns: 330px 235px;
  gap: 12px;
}

.template-artboard .doc-preview-document.pdf-summary-medium .pdf-summary {
  grid-template-columns: 400px 235px;
}

.template-artboard .doc-preview-document.pdf-summary-wide .pdf-summary {
  grid-template-columns: 470px 235px;
}

.template-artboard .doc-preview-document .pdf-summary-list {
  width: auto;
  padding: 13px 15px;
  border-radius: 12px;
}

.template-artboard .doc-preview-document .pdf-summary-list div {
  padding: 6px 0;
  font-size: 13px;
}

.template-artboard .doc-preview-document .pdf-total-card {
  padding: 16px 17px;
  border-radius: 14px;
}

.template-artboard .doc-preview-document .pdf-total-card strong {
  margin-top: 8px;
  font-size: 32px;
}

.template-artboard .doc-preview-document .pdf-total-card small {
  font-size: 12px;
}

.template-artboard .doc-preview-document .pdf-financing {
  gap: 12px;
}

.template-artboard .doc-preview-document .pdf-financing > div {
  padding: 13px 15px;
  border-radius: 12px;
}

.template-artboard .doc-preview-document .pdf-financing strong {
  margin-top: 6px;
  font-size: 21.33px;
}

.template-artboard .doc-preview-document .pdf-financing small {
  margin-top: 5px;
  font-size: 11px;
}

.template-artboard .doc-preview-document .pdf-legal-notes {
  gap: 5px;
  margin-top: 11px;
  padding-top: 8px;
}

.template-artboard .doc-preview-document .pdf-legal-note {
  padding: 6px 8px;
  border-radius: 8px;
}

.template-artboard .doc-preview-document .pdf-legal-note span {
  font-size: 8px;
}

.template-artboard .doc-preview-document .pdf-legal-note p {
  margin-top: 2px;
  font-size: 9px;
}

.template-artboard .doc-preview-document .pdf-signatures {
  gap: 24px;
  margin-top: 13px;
}

.template-artboard .doc-preview-document .pdf-signature-card {
  min-height: 46px;
  padding-top: 7px;
}

.template-artboard .doc-preview-document .pdf-signature-card span {
  font-size: 8px;
}

.template-artboard .doc-preview-document .pdf-signature-card strong {
  font-size: 12px;
}

.template-artboard .doc-preview-document .pdf-signature-card small {
  font-size: 10px;
}

.canvas-template-layer {
  position: relative;
  cursor: pointer;
  transition: outline-color .14s ease, background .14s ease;
}

.pdf-positioned-block {
  transform: translateY(var(--template-offset-y, 0px));
}

.template-artboard .canvas-template-layer:hover {
  outline: 2px dashed #a1a1aa;
  outline-offset: 5px;
}

.template-artboard .canvas-template-layer.is-selected {
  outline: 2px solid #18181b;
  outline-offset: 6px;
}

.template-artboard .canvas-template-layer.is-selected::before {
  position: absolute;
  top: -25px;
  left: -2px;
  padding: 3px 8px;
  border-radius: 5px;
  background: #18181b;
  color: #fff;
  content: "Selezionato";
  font-size: 10px;
  font-weight: 650;
  line-height: 16px;
}

.canvas-drag-handle {
  position: absolute;
  top: 50%;
  left: -33px;
  z-index: 4;
  display: grid;
  width: 25px;
  height: 34px;
  place-items: center;
  border: 1px solid #d4d4d8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(24,24,27,.08);
  color: #71717a;
  cursor: ns-resize;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity .12s ease, background .12s ease, color .12s ease;
  touch-action: none;
}

.canvas-drag-handle svg {
  width: 15px;
  height: 15px;
}

.canvas-template-layer:hover .canvas-drag-handle,
.canvas-template-layer.is-selected .canvas-drag-handle,
.canvas-template-layer.is-dragging .canvas-drag-handle {
  opacity: 1;
}

.canvas-drag-handle:hover,
.canvas-template-layer.is-dragging .canvas-drag-handle {
  background: #18181b;
  border-color: #18181b;
  color: #fff;
}

.canvas-template-layer.is-dragging {
  outline: 2px solid #18181b;
  outline-offset: 6px;
  cursor: ns-resize;
}

.canvas-template-layer.is-dragging .canvas-drag-handle {
  cursor: grabbing;
}

.canvas-inline-edit {
  border-radius: 3px;
  cursor: text;
  outline: none;
}

.canvas-inline-edit:hover {
  background: #eef0f4;
}

.canvas-inline-edit:focus {
  background: #eef0f4;
  box-shadow: 0 0 0 2px #18181b;
}

.template-inspector-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: calc(100dvh - 116px);
  overflow: hidden;
}

.template-inspector-head {
  flex: 0 0 auto;
  padding: 18px 18px 12px;
  border-bottom: 1px solid var(--border);
}

.template-inspector-head h4 {
  margin: 4px 0 0;
  font-size: 18px;
}

.template-inspector-panel .template-field-grid {
  flex: 1 1 auto;
  height: 0;
  max-height: none;
  min-height: 0;
  padding: 4px 18px 20px;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.template-inspector-panel .template-field-group {
  padding: 14px 0 0;
  border: 0;
}

.template-inspector-panel .template-fields {
  grid-template-columns: 1fr;
  gap: 12px;
}

.template-inspector-panel .template-switch {
  min-height: 58px;
}

.template-position-controls {
  display: grid;
  gap: 10px;
  margin-bottom: 18px;
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: #f7f7f8;
}

.template-position-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--text-muted);
  font-size: 11.5px;
  font-weight: 650;
}

.template-position-head output {
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.template-position-controls input[type="range"] {
  min-height: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  accent-color: #18181b;
}

.template-position-actions {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 6px;
}

.template-position-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 34px;
  padding: 0 9px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: #fff;
  color: var(--text);
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
}

.template-position-actions button:hover {
  border-color: #b8b8bd;
  background: #efeff1;
}

.template-position-actions svg {
  width: 13px;
}

.template-position-controls small {
  color: var(--text-muted);
  font-size: 10.5px;
  line-height: 1.4;
}

.template-order-controls {
  display: grid;
  gap: 9px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.template-order-controls > span {
  color: var(--text-muted);
  font-size: 11.5px;
  font-weight: 650;
}

.template-order-controls > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.template-order-controls button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 38px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface);
  color: var(--text);
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.template-order-controls button:hover {
  background: var(--surface-2);
}

.template-order-controls svg {
  width: 14px;
}

.template-zoom {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}

.template-zoom button {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
}

.template-zoom button:hover:not(:disabled) {
  background: var(--surface-2);
  color: var(--text);
}

.template-zoom button:disabled {
  opacity: .35;
  cursor: default;
}

.template-zoom svg {
  width: 14px;
}

.template-zoom span {
  min-width: 44px;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 650;
  text-align: center;
}

@media (min-width: 1101px) and (max-width: 1360px) {
  .documents-layout.is-template-editing:not(.is-tree-collapsed) {
    grid-template-columns: 224px minmax(0, 1fr);
  }

  .template-studio-body {
    grid-template-columns: 170px minmax(440px, 1fr) 290px;
  }
}

@media (max-width: 1100px) {
  .workspace.workspace-documents.workspace-template-studio,
  .documents-canvas.is-studio-open,
  .documents-layout.is-template-editing {
    height: auto;
    overflow: visible;
  }

  .documents-canvas.is-studio-open .documents-hero {
    display: flex;
  }

  .documents-layout.is-template-editing,
  .documents-layout.is-template-editing.is-tree-collapsed,
  .template-studio-body {
    grid-template-columns: 1fr;
  }

  .template-studio {
    grid-column: auto;
    height: auto;
  }

  .template-studio-body,
  .template-inspector-panel,
  .template-artboard-panel {
    max-height: none;
    overflow: visible;
  }

  .template-inspector-panel .template-field-grid {
    height: auto;
    overflow-y: visible;
  }

  .template-artboard {
    height: auto;
    min-height: 720px;
    overflow: auto;
  }
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--font); color: var(--text); background: var(--bg); font-size: 14px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
button { font-family: inherit; }

.is-hidden {
  display: none !important;
}

/* === Login (mono) === */
.login-shell { min-height: 100vh; display: grid; place-items: center; background: var(--bg); padding: 24px; grid-template-columns: 1fr; }
.login-panel { width: min(420px, 100%); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow); display: block; min-height: 0; }
.login-panel::before, .login-panel::after { content: none; }
.login-panel-inner { width: 100%; display: grid; gap: 16px; }
.login-brand { margin-bottom: 4px; }
.brand-lockup { display: flex; align-items: center; gap: 10px; }
.brand-lockup strong { display: block; font-size: 16px; line-height: 1.2; color: var(--text); }
.brand-mark { width: 36px; height: 36px; border-radius: 8px; border: 1px solid var(--border); object-fit: cover; }
.eyebrow { display: block; color: var(--text-muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.section-kicker { display: block; color: var(--walnut-dark); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.login-copy { display: grid; gap: 6px; }
.login-copy h1 { margin: 0; font-size: 20px; line-height: 1.25; color: var(--text); letter-spacing: 0; max-width: none; }
.login-copy p { margin: 0; color: var(--text-muted); font-size: 13px; line-height: 1.5; max-width: none; }
.login-form { display: grid; gap: 12px; margin-top: 4px; padding: 0; border: none; background: transparent; box-shadow: none; backdrop-filter: none; width: 100%; }
.login-form label { display: grid; gap: 4px; font-size: 12px; color: var(--text-muted); font-weight: 500; }
.input-shell { display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 8px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-2); padding: 0 10px; min-height: 0; }
.input-shell:focus-within { border-color: var(--text); background: var(--surface); box-shadow: 0 0 0 3px var(--accent-soft); }
.input-shell svg { width: 16px; height: 16px; color: var(--text-muted); }
.input-shell input { min-height: 38px; border: 0; background: transparent; padding: 0; box-shadow: none; color: var(--text); font: inherit; }
.input-shell input:focus { border-color: transparent; box-shadow: none; }
.login-submit { background: var(--accent); color: #fff; border: 1px solid var(--accent); border-radius: var(--radius); padding: 10px 14px; font-weight: 600; cursor: pointer; min-height: 0; display: flex; align-items: center; justify-content: space-between; }
.login-submit:hover { background: #000; }
.login-submit svg { width: 16px; height: 16px; }
.login-mini-grid { display: none; }
.login-visual { display: none; }
.login-visual::before, .login-visual::after { content: none; }
.login-visual-bg, .login-visual-content, .login-hero-copy, .login-quote-preview, .preview-head, .visual-strip { display: none; }

label {
  display: grid;
  gap: 8px;
  color: rgba(23, 20, 17, 0.68);
  font-size: 13px;
  font-weight: 700;
}

input,
select,
textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  font-family: inherit;
  padding: 10px 12px;
  outline: none;
}

textarea {
  min-height: 118px;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--walnut);
  box-shadow: 0 0 0 3px rgba(179, 150, 120, 0.18);
}

.login-visual {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background: var(--ink);
}

.login-visual::before,
.login-visual::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
}

.login-visual::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(23, 20, 17, 0.88), rgba(23, 20, 17, 0.24) 46%, rgba(23, 20, 17, 0.42)),
    linear-gradient(0deg, rgba(23, 20, 17, 0.54), transparent 44%);
}

.login-visual::after {
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.22;
}

.login-visual-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.9) contrast(1.04);
}

.login-visual-content {
  position: relative;
  z-index: 3;
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 28px;
  padding: clamp(28px, 4vw, 64px);
  color: var(--white);
}

.login-hero-copy {
  max-width: 660px;
  align-self: start;
  padding-top: clamp(18px, 5vh, 72px);
}

.login-hero-copy .section-kicker {
  color: var(--sand);
}

.login-hero-copy h2 {
  max-width: 620px;
  margin: 10px 0 0;
  font-size: clamp(46px, 5vw, 78px);
  line-height: 0.94;
  letter-spacing: 0;
}

.login-quote-preview {
  width: min(420px, 100%);
  align-self: center;
  justify-self: end;
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  background: rgba(247, 242, 236, 0.9);
  color: var(--ink);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(18px);
}

.preview-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.preview-head span,
.login-quote-preview dt {
  color: rgba(23, 20, 17, 0.56);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.preview-head strong {
  display: block;
  margin-top: 4px;
  font-size: 26px;
  line-height: 1;
}

.login-quote-preview dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.login-quote-preview dl div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 10px;
  border-top: 1px solid rgba(23, 20, 17, 0.1);
}

.login-quote-preview dd {
  margin: 0;
  font-weight: 900;
}

.login-quote-preview .total dd {
  font-size: 28px;
  line-height: 1;
}

.status-pill,
.chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  color: var(--ink);
  background: rgba(247, 242, 236, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.45);
  font-size: 12px;
  font-weight: 800;
}

.button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: var(--radius);
  padding: 10px 14px;
  font-weight: 800;
  color: var(--ink);
  background: var(--white);
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.button:hover {
  transform: translateY(-1px);
}

.button svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

.button.primary {
  background: var(--ink);
  color: var(--white);
}

.button.primary:hover {
  background: #2b251f;
}

.button.muted {
  background: var(--paper-deep);
  color: var(--ink);
}

.button.danger {
  background: rgba(154, 59, 45, 0.12);
  color: #9a3b2d;
}

.button.danger:hover {
  background: #9a3b2d;
  color: var(--white);
}

.button.ghost {
  background: rgba(255, 255, 255, 0.08);
  color: var(--paper);
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.button.text {
  min-height: auto;
  padding: 0;
  background: transparent;
  color: var(--walnut-dark);
}

.button.full {
  width: 100%;
}

.align-end {
  align-self: end;
}

.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: var(--sidebar) minmax(0, 1fr);
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
  color: var(--paper);
  background:
    linear-gradient(180deg, rgba(23, 20, 17, 0.98), rgba(41, 48, 82, 0.88)),
    var(--ink);
}

.sidebar .eyebrow {
  color: rgba(247, 242, 236, 0.62);
}

/* legacy .nav-list/.nav-item rimosse — sidebar usa .sb-item */

.sidebar-footer {
  margin-top: auto;
  display: grid;
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.sidebar-footer span {
  color: rgba(247, 242, 236, 0.58);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.workspace {
  min-width: 0;
  padding: 24px;
}

.workspace.workspace-documents .topbar,
.workspace.workspace-hub .topbar {
  display: none;
}

/* legacy .topbar rimossa — sostituita dalla regola flat in fondo */
.panel h3,
.quote-summary h3 {
  margin: 4px 0 0;
  line-height: 1.08;
  letter-spacing: 0;
}

.topbar h2 {
  font-size: 26px;
}

.topbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.view {
  display: none;
}

.view.is-active {
  display: block;
}

.hub-canvas {
  display: grid;
  gap: 0;
}

.hub-hero {
  position: relative;
  height: 56px;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  padding: 4px 0 14px;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  box-sizing: border-box;
}

.hub-hero .tabs {
  flex: 1;
  gap: 26px;
}

.hub-class-tabs {
  min-width: 0;
}

.hub-class-tabs .tab.add {
  width: auto;
  height: 36px;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  border-radius: 0;
  padding: 0 6px;
  font-size: 18px;
  line-height: 1;
  transition: color .14s ease;
}

.hub-class-tabs .tab.add:hover,
.hub-class-tabs .tab.add[aria-expanded="true"] {
  color: var(--text);
  background: transparent;
  box-shadow: none;
}

.hub-class-create-panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 34;
  display: none;
  width: min(300px, calc(100vw - 48px));
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 10px 30px rgba(15, 15, 18, .09);
}

.hub-class-create-panel.is-open {
  display: grid;
  gap: 8px;
}

.hub-class-create-panel label {
  display: grid;
  gap: 7px;
  padding: 4px;
}

.hub-class-create-panel label span {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hub-class-create-panel input {
  height: 36px;
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  outline: 0;
  padding: 0 10px;
}

.hub-class-create-panel input:focus {
  border-color: var(--text);
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .08);
}

.hub-class-create-panel > div {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  padding: 2px 4px 4px;
}

.hub-class-create-panel button {
  min-height: 32px;
  border-radius: 8px;
  padding: 0 10px;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.hub-class-cancel {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}

.hub-class-cancel:hover {
  background: var(--surface-2);
}

.hub-class-save {
  border: 0;
  background: var(--text);
  color: #fff;
}

.hub-class-save:hover {
  background: #000;
}

.hub-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.hub-panel,
.hub-team-panel {
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 18px 50px rgba(23, 20, 17, 0.06);
}

.hub-editor-panel {
  position: sticky;
  top: 16px;
  padding: 24px;
}

.modal-panel.hub-seller-modal-panel {
  --cd-ink: #0b0b0d;
  --cd-graphite: #18181b;
  --cd-paper: #ffffff;
  --cd-paper-2: #f6f6f7;
  --cd-rule: #ececee;
  --cd-muted: #6e6e76;

  width: min(640px, calc(100vw - 40px));
  max-height: min(640px, calc(100vh - 40px));
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 24px 70px rgba(15, 15, 18, .2);
  overflow: hidden;
}

#hubSellerModal .modal-backdrop {
  background: rgba(24, 24, 27, .42);
  backdrop-filter: blur(8px);
}

.hub-seller-modal-panel .modal-heading {
  align-items: center;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
}

.hub-seller-modal-title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.hub-seller-modal-icon {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-2);
  color: var(--text);
}

.hub-seller-modal-icon svg {
  width: 17px;
  height: 17px;
  stroke-width: 1.75;
}

.hub-seller-modal-title span:not(.hub-seller-modal-icon) {
  display: block;
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.2;
  text-transform: uppercase;
}

.hub-seller-modal-title h3 {
  margin: 3px 0 0;
  color: var(--text);
  font-size: 17px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.2;
}

.hub-seller-modal-close {
  flex: 0 0 auto;
}

.hub-seller-modal-close:focus {
  outline: none;
}

.hub-seller-modal-close:focus-visible {
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .08);
}

.hub-seller-modal-close svg {
  width: 17px;
  height: 17px;
  stroke-width: 1.8;
}

.hub-seller-modal-body {
  overflow: auto;
  padding: 22px 20px 20px;
}

.hub-seller-modal-panel .hub-seller-form {
  margin-top: 0;
}

.hub-seller-modal-panel .hub-form-actions {
  margin: 2px -20px -20px;
  padding: 14px 20px;
  border-top: 1px solid var(--border);
  background: var(--surface-2);
}

.hub-panel-head h3 {
  margin: 6px 0 6px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.hub-panel-head p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.hub-seller-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 12px;
  margin-top: 22px;
}

.hub-seller-form label {
  display: grid;
  gap: 7px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hub-seller-form label.wide {
  grid-column: 1 / -1;
}

.hub-seller-form input,
.hub-seller-form select {
  width: 100%;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  padding: 0 12px;
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 550;
  outline: 0;
  box-shadow: none;
  transition: background .14s ease, border-color .14s ease, box-shadow .14s ease;
}

.hub-seller-form select {
  cursor: pointer;
}

.hub-seller-form input:hover,
.hub-seller-form select:hover {
  border-color: var(--border-strong);
  background: var(--surface-2);
}

.hub-seller-form input:focus,
.hub-seller-form select:focus {
  border-color: var(--text);
  background: var(--surface);
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .08);
}

.hub-form-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 8px;
}

.hub-primary-button,
.hub-secondary-button {
  min-height: 38px;
  border-radius: 9px;
  padding: 0 14px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}

.hub-primary-button {
  border: 0;
  background: var(--text);
  color: #fff;
  box-shadow: none;
}

.hub-primary-button:hover {
  background: #000;
}

.hub-secondary-button {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}

.hub-secondary-button:hover {
  border-color: var(--border-strong);
  background: var(--surface-2);
}

.hub-team-panel {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.hub-team-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.hub-department-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.hub-department-filters::-webkit-scrollbar {
  display: none;
}

.hub-department-filter {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  min-height: 30px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  padding: 0 11px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.hub-department-filter span {
  display: inline-grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 999px;
  background: #f3f3f4;
  color: var(--ink);
  font-size: 11px;
}

.hub-department-filter.is-active {
  border-color: #18181b;
  background: #18181b;
  color: #fff;
}

.hub-department-filter.is-active span {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.hub-team-table-wrap {
  margin-top: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

#hubTeamTable {
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

#hubTeamTable th,
#hubTeamTable td {
  vertical-align: middle;
}

#hubTeamTable thead th {
  height: 44px;
  padding: 0 16px;
  border-bottom: 1px solid var(--border);
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
}

#hubTeamTable .hub-col-check { width: 48px; }
#hubTeamTable .hub-col-seller { width: 28%; }
#hubTeamTable .hub-col-department { width: 18%; }
#hubTeamTable .hub-col-phone { width: 34%; }
#hubTeamTable .hub-col-actions { width: 110px; }
#hubTeamTable .is-align-right { text-align: right; }

#hubTeamTable tbody tr {
  transition: background .14s ease;
}

#hubTeamTable tbody tr:hover {
  background: rgba(24, 24, 27, .025);
}

#hubTeamTable tbody td {
  height: 64px;
  padding: 0 16px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#hubTeamTable tbody tr:last-child td {
  border-bottom: 1px solid var(--border);
}

#hubTeamTable tbody td.check {
  width: 48px;
  padding: 0;
  text-align: center;
}

#hubTeamTable tbody td.check input {
  accent-color: var(--text);
}

/* === Membri: accessi e permessi === */
.members-shell {
  display: grid;
  gap: 16px;
}

.members-new-button,
.members-primary-button,
.members-secondary-button,
.members-danger-button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 10px;
  padding: 0 14px;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
  transition: none;
}

.members-new-button,
.members-primary-button {
  border: 1px solid var(--text);
  background: var(--text);
  color: #fff;
}

.members-secondary-button {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}

.members-danger-button {
  margin-right: auto;
  border: 1px solid rgba(143, 51, 42, .2);
  background: var(--surface);
  color: #8f332a;
}

.members-danger-button:disabled {
  color: var(--text-soft);
  border-color: var(--border);
  opacity: .6;
  cursor: not-allowed;
}

.members-new-button svg {
  width: 16px;
  height: 16px;
}

.members-layout {
  display: grid;
  grid-template-columns: minmax(340px, .85fr) minmax(520px, 1.35fr);
  gap: 16px;
  align-items: start;
}

.members-list-panel,
.members-editor-panel {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}

.members-list-panel {
  overflow: hidden;
}

.members-panel-head {
  display: grid;
  gap: 12px;
  padding: 16px;
  border-bottom: 1px solid var(--border);
}

.members-panel-head > div,
.members-permission-head > div {
  display: grid;
  gap: 4px;
}

.members-panel-head span,
.members-permission-head span {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.members-panel-head strong,
.members-permission-head strong {
  color: var(--text);
  font-size: 15px;
  font-weight: 680;
}

.members-search {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 38px;
  padding: 0 11px;
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text-muted);
}

.members-search svg {
  width: 15px;
  height: 15px;
}

.members-search input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
}

.members-list {
  display: grid;
  gap: 1px;
  max-height: calc(100vh - 360px);
  overflow: auto;
}

.member-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) max-content;
  grid-template-areas:
    "avatar main status"
    "avatar meta status";
  column-gap: 12px;
  row-gap: 4px;
  align-items: center;
  width: 100%;
  min-height: 84px;
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.member-row.is-active {
  background: var(--surface-2);
}

.member-row-avatar,
.members-editor-avatar {
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: var(--text);
  color: #fff;
  font-weight: 760;
  letter-spacing: .04em;
}

.member-row-avatar {
  grid-area: avatar;
  width: 38px;
  height: 38px;
  font-size: 12px;
}

.member-row-main {
  grid-area: main;
  min-width: 0;
  display: grid;
  gap: 3px;
}

.member-row-main strong {
  overflow: hidden;
  color: var(--text);
  font-size: 14px;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-row-main small,
.member-row-meta small {
  overflow: hidden;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-row-meta {
  grid-area: meta;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.member-row-meta em {
  color: var(--text);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.member-status-dot {
  grid-area: status;
  align-self: center;
  justify-self: end;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: 0 9px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 650;
}

.member-status-dot.is-active {
  color: #17643a;
  border-color: rgba(23, 100, 58, .22);
  background: rgba(23, 100, 58, .06);
}

.member-status-dot.is-disabled {
  color: #8f332a;
  border-color: rgba(143, 51, 42, .18);
  background: rgba(143, 51, 42, .05);
}

.member-status-dot.is-paused {
  color: #8a6300;
  border-color: rgba(138, 99, 0, .2);
  background: rgba(138, 99, 0, .06);
}

.members-empty {
  padding: 18px;
  color: var(--text-muted);
  font-size: 13px;
}

.members-editor-panel {
  padding: 16px;
}

.members-editor-form {
  display: grid;
  gap: 14px;
}

.members-editor-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 2px 2px 14px;
  border-bottom: 1px solid var(--border);
}

.members-editor-avatar {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  font-size: 14px;
}

.members-editor-head h3 {
  margin: 2px 0 4px;
  color: var(--text);
  font-size: 22px;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.members-editor-head p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
}

.members-form-card {
  display: grid;
  gap: 14px;
  padding: 15px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: linear-gradient(180deg, var(--surface), var(--surface-2));
}

.members-form-card-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.members-form-card-head span {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.members-form-card-head strong {
  color: var(--text);
  font-size: 14px;
  font-weight: 680;
}

.members-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
}

.members-form-grid label {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.members-form-grid label span {
  color: var(--text-soft);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.members-form-grid label:nth-child(1),
.members-form-grid label:nth-child(2) {
  grid-column: span 2;
}

.members-form-grid label:nth-child(3) {
  grid-column: span 2;
}

.members-form-grid input,
.members-form-grid select {
  width: 100%;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 560;
  outline: 0;
  padding: 0 12px;
  box-shadow: 0 1px 0 rgba(24, 24, 27, .02);
}

.members-form-grid select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  background:
    linear-gradient(45deg, transparent 50%, var(--text-muted) 50%) calc(100% - 18px) 50% / 6px 6px no-repeat,
    linear-gradient(135deg, var(--text-muted) 50%, transparent 50%) calc(100% - 14px) 50% / 6px 6px no-repeat,
    var(--surface);
}

.members-form-grid input:focus,
.members-form-grid select:focus {
  border-color: var(--border-strong);
  box-shadow: none;
}

.members-permission-block {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-2);
}

.members-permission-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.members-permission-head small {
  color: var(--text-muted);
  font-size: 12px;
}

.members-permission-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.members-permission-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 9px;
  min-height: 54px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  cursor: pointer;
}

.members-permission-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 9px;
  background: var(--surface-2);
  color: var(--text-muted);
}

.members-permission-icon svg {
  width: 15px;
  height: 15px;
}

.members-permission-copy {
  min-width: 0;
}

.members-permission-copy strong {
  display: block;
  overflow: hidden;
  color: var(--text);
  font-size: 12.5px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.members-permission-item input {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 34px;
  height: 20px;
  min-height: 20px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: var(--surface-2);
  box-shadow: none;
  outline: 0;
}

.members-permission-item input::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(24, 24, 27, .14);
}

.members-permission-item input:checked {
  border-color: var(--text);
  background: var(--text);
}

.members-permission-item input:checked::after {
  left: 18px;
  background: #fff;
}

.members-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding-top: 4px;
}

@media (max-width: 1100px) {
  .members-layout {
    grid-template-columns: 1fr;
  }

  .members-permission-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .members-editor-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .members-form-grid,
  .members-permission-grid {
    grid-template-columns: 1fr;
  }

  .members-form-grid label:nth-child(1),
  .members-form-grid label:nth-child(2),
  .members-form-grid label:nth-child(3) {
    grid-column: auto;
  }
}

#hubTeamTable .cell-name {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  font-weight: 600;
}

#hubTeamTable .cell-name .avatar-ini {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--text);
  font-size: 10px;
  box-shadow: none;
}

#hubTeamTable .cell-name span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hub-table-department,
.hub-table-phone {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: var(--muted);
  font-weight: 700;
}

#hubTeamTable .hub-table-department {
  --department-dot: var(--text-soft);
  gap: 6px;
  padding: 3px 10px;
  color: var(--pill-gray-fg);
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.4;
}

#hubTeamTable .hub-table-department::before {
  background: var(--department-dot);
  opacity: 1;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="zona_giorno"] {
  --department-dot: #d39a32;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="zona_notte"] {
  --department-dot: #5b6ee1;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="cucine"] {
  --department-dot: #2f9f73;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="amministratore"] {
  --department-dot: #18181b;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="socio"] {
  --department-dot: #b88a3e;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="legale_rappresentante"] {
  --department-dot: #3f6f8f;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="responsabile_amministrativo"] {
  --department-dot: #6d5bd0;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="contabilita"] {
  --department-dot: #2f9f73;
}

#hubTeamTable .hub-table-department[data-hub-assignment-pill="consulente"] {
  --department-dot: #71717a;
}

.hub-table-department i,
.hub-table-phone i,
.hub-table-phone svg,
.hub-seller-phone svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: var(--text-soft);
  stroke-width: 1.75;
}

.hub-table-phone strong {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  text-overflow: ellipsis;
  font-variant-numeric: tabular-nums;
}

.hub-table-edit {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--text-soft);
  transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.hub-table-edit:hover {
  border-color: var(--line);
  background: rgba(24, 24, 27, .035);
  color: #18181b;
}

.hub-toolbar-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 18px 0 12px;
}

.hub-toolbar-row .tr-search {
  flex: 0 1 320px;
}

.hub-toolbar-row .hub-department-filters {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 30;
  display: none;
  width: min(286px, calc(100vw - 48px));
  min-width: min(240px, calc(100vw - 48px));
  gap: 2px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 10px 30px rgba(15, 15, 18, .09);
  overflow: visible;
}

.hub-toolbar-row .hub-department-filters.is-open {
  display: grid;
}

.hub-toolbar-row .hub-department-filter {
  justify-content: space-between;
  width: 100%;
  min-height: 38px;
  border-color: transparent;
  border-radius: 8px;
  background: transparent;
  padding: 0 9px 0 11px;
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  text-align: left;
}

.hub-toolbar-row .hub-department-filter:hover {
  background: var(--surface-2);
}

.hub-toolbar-row .hub-department-filter span {
  min-width: 24px;
  height: 22px;
  background: var(--accent-soft);
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 600;
}

.hub-toolbar-row .hub-department-filter.is-active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.hub-toolbar-row .hub-department-filter.is-active span {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

.hub-toolbar-row .tr-customize {
  margin-left: auto;
}

.hub-toolbar-row .tr-customize[aria-expanded="true"] {
  background: var(--surface);
  box-shadow: inset 0 0 0 1px var(--border);
}

.hub-customize-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 32;
  display: none;
  width: min(318px, calc(100vw - 48px));
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 10px 30px rgba(15, 15, 18, .09);
}

.hub-customize-panel.is-open {
  display: grid;
  gap: 8px;
}

.hub-customize-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 8px 4px;
}

.hub-customize-head span {
  display: block;
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hub-customize-head strong {
  display: block;
  margin-top: 3px;
  color: var(--text);
  font-size: 13px;
  font-weight: 650;
}

.hub-customize-close,
.hub-column-actions button {
  display: inline-grid;
  place-items: center;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-soft);
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.hub-customize-close {
  width: 28px;
  height: 28px;
  border-radius: 8px;
}

.hub-customize-close:hover,
.hub-column-actions button:hover:not(:disabled) {
  border-color: var(--border);
  background: var(--surface-2);
  color: var(--text);
}

.hub-customize-close svg,
.hub-column-actions svg {
  width: 14px;
  height: 14px;
  stroke-width: 1.8;
}

.hub-column-list {
  display: grid;
  gap: 3px;
}

.hub-column-item {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 6px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--text);
  cursor: grab;
  transition: background .14s ease, border-color .14s ease, opacity .14s ease;
}

.hub-column-item:hover,
.hub-column-item.is-drop-target {
  border-color: var(--border);
  background: var(--surface-2);
}

.hub-column-item.is-dragging {
  opacity: .56;
}

.hub-column-grip,
.hub-column-main {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.hub-column-grip {
  justify-content: center;
  color: var(--text-soft);
}

.hub-column-grip svg {
  width: 14px;
  height: 14px;
  stroke-width: 1.8;
}

.hub-column-main {
  gap: 8px;
}

.hub-column-main svg {
  width: 15px;
  height: 15px;
  color: var(--text-soft);
  stroke-width: 1.75;
}

.hub-column-main strong {
  overflow: hidden;
  font-size: 13px;
  font-weight: 550;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hub-column-actions {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.hub-column-actions button {
  width: 26px;
  height: 26px;
  border-radius: 7px;
}

.hub-column-actions button:disabled {
  cursor: not-allowed;
  opacity: .32;
}

.hub-customize-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 8px 6px;
  border-top: 1px solid var(--border);
}

.hub-customize-foot button {
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 550;
  padding: 6px 7px;
}

.hub-customize-foot button:hover {
  background: var(--surface-2);
}

.hub-customize-foot small {
  color: var(--text-soft);
  font-size: 11px;
  white-space: nowrap;
}

.hub-table-empty {
  height: 72px;
  color: var(--text-muted);
  font-weight: 650;
  text-align: center;
}

.hub-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0 18px;
}

.hub-stat {
  display: grid;
  gap: 5px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fafafa;
}

.hub-stat span,
.hub-stat small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.hub-stat strong {
  color: var(--ink);
  font-size: 30px;
  line-height: 1;
}

.hub-team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.hub-team-grid.is-filtered {
  grid-template-columns: minmax(0, 1fr);
}

.hub-department-card {
  min-height: 280px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: linear-gradient(180deg, #fff, #fbfbfb);
}

.hub-team-grid.is-filtered .hub-department-card {
  min-height: 0;
}

.hub-department-title {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.hub-department-title > span {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #18181b;
  color: #fff;
  flex: 0 0 40px;
}

.hub-department-title strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.1;
}

.hub-department-title small {
  color: var(--muted);
  font-weight: 750;
}

.hub-seller-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.hub-team-grid.is-filtered .hub-seller-list {
  display: flex;
  align-items: stretch;
  gap: 12px;
  overflow-x: auto;
  padding: 2px 2px 10px;
  scrollbar-width: thin;
}

.hub-team-grid.is-filtered .hub-seller-list::-webkit-scrollbar {
  height: 8px;
}

.hub-team-grid.is-filtered .hub-seller-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #d9d9dd;
}

.hub-seller-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.hub-team-grid.is-filtered .hub-seller-card {
  width: min(280px, 76vw);
  min-width: min(280px, 76vw);
}

.hub-seller-card:hover {
  border-color: rgba(184, 138, 62, 0.38);
  box-shadow: 0 14px 30px rgba(23, 20, 17, 0.08);
  transform: translateY(-1px);
}

.hub-seller-top {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hub-seller-top .avatar-ini {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 13px;
}

.hub-seller-info {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.hub-seller-info strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hub-seller-info small {
  color: var(--muted);
  font-weight: 750;
}

.hub-card-edit {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  margin-left: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text-soft);
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}

.hub-card-edit svg {
  width: 15px;
  height: 15px;
  stroke-width: 1.75;
}

.hub-card-edit:hover {
  border-color: var(--border-strong);
  background: var(--surface-2);
  color: var(--text);
}

.hub-card-edit:focus {
  outline: none;
}

.hub-card-edit:focus-visible {
  border-color: var(--border-strong);
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .08);
}

.hub-card-edit.hub-table-edit {
  width: 32px;
  height: 32px;
  border-color: transparent;
  background: transparent;
}

.hub-card-edit.hub-table-edit:hover,
.hub-card-edit.hub-table-edit:focus-visible {
  border-color: var(--border);
  background: var(--surface);
}

.hub-seller-phone {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f7f7f8;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.hub-empty-department {
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: 15px;
  color: var(--muted);
  font-weight: 700;
}

@media (max-width: 1280px) {
  .hub-layout {
    grid-template-columns: 1fr;
  }

  .hub-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .hub-hero,
  .hub-team-head {
    align-items: stretch;
    flex-direction: column;
  }

  .hub-hero .btn {
    width: 100%;
  }

  .hub-seller-form,
  .hub-stats,
  .hub-team-grid {
    grid-template-columns: 1fr;
  }
}

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.metric,
.panel,
.quote-card,
.company-card,
.inventory-row,
.customer-row {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 10px 36px rgba(23, 20, 17, 0.06);
}

.metric {
  min-height: 126px;
  display: grid;
  align-content: space-between;
  gap: 14px;
  padding: 18px;
}

.metric strong {
  font-size: 30px;
  line-height: 1;
}

.metric span {
  color: rgba(23, 20, 17, 0.58);
  font-weight: 700;
}

.two-column {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.panel {
  padding: 18px;
}

.panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.quote-list,
.data-grid,
.company-grid {
  display: grid;
  gap: 12px;
}

.quote-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
}

.quote-card h4,
.company-card h4,
.inventory-row h4,
.customer-row h4 {
  margin: 0 0 5px;
  font-size: 15px;
}

.quote-card p,
.company-card p,
.inventory-row p,
.customer-row p,
.empty-state {
  margin: 0;
  color: rgba(23, 20, 17, 0.58);
  font-size: 13px;
  line-height: 1.5;
}

.quote-card strong {
  font-size: 18px;
  white-space: nowrap;
}

.quote-actions {
  align-items: center;
}

.quote-start {
  min-height: min(620px, calc(100vh - 210px));
  display: grid;
  place-items: center;
  padding: 34px 0 46px;
}

.quote-start-inner {
  width: min(980px, 100%);
  display: grid;
  gap: 22px;
}

.quote-start-heading {
  max-width: 560px;
  margin: 0 auto 4px;
  text-align: center;
}

.quote-start-heading .section-kicker {
  color: var(--text-soft);
  font-size: 10px;
  letter-spacing: .22em;
}

.quote-start-heading h2 {
  margin: 8px 0 7px;
  color: var(--text);
  font-size: clamp(29px, 3vw, 38px);
  font-weight: 760;
  line-height: 1.06;
  letter-spacing: 0;
}

.quote-start-heading p {
  margin: 0;
  color: var(--text-muted);
  font-size: 14.5px;
  line-height: 1.45;
}

.quote-start-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.quote-start-card {
  position: relative;
  min-height: 198px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "icon copy idx"
    "icon copy idx"
    "icon action idx";
  align-items: start;
  gap: 12px 18px;
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 12px 32px rgba(20, 20, 24, .045);
  text-align: left;
  cursor: pointer;
}

.quote-start-card::after {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(24, 24, 27, .035), transparent 42%);
  pointer-events: none;
  content: "";
}

.quote-start-card-primary {
  border-color: rgba(24, 24, 27, .16);
}

.quote-start-card-top {
  display: contents;
}

.quote-start-card i,
.quote-start-card svg {
  grid-area: icon;
  width: 52px;
  height: 52px;
  padding: 14px;
  border: 1px solid rgba(24, 24, 27, .08);
  border-radius: 12px;
  background: var(--accent);
  color: #fff;
  box-shadow: 0 12px 24px rgba(20, 20, 24, .08);
}

.quote-start-card-top small {
  grid-area: idx;
  align-self: start;
  justify-self: end;
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .12em;
}

.quote-start-card-copy {
  grid-area: copy;
  display: grid;
  align-content: start;
  gap: 9px;
  min-width: 0;
  padding-top: 3px;
}

.quote-start-card-copy strong {
  font-size: 19px;
  font-weight: 740;
  line-height: 1.16;
  letter-spacing: 0;
}

.quote-start-card-copy em {
  max-width: 420px;
  color: var(--text-muted);
  font-size: 13.5px;
  font-style: normal;
  line-height: 1.48;
}

.quote-start-action {
  grid-area: action;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 34px;
  margin-top: 8px;
  padding: 0 13px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: #f7f7f8;
  color: var(--text);
  font-size: 12.5px;
  font-weight: 720;
}

.quote-search-panel {
  display: grid;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  background: var(--surface);
  box-shadow: 0 12px 32px rgba(20, 20, 24, .045);
}

.quote-search-input {
  min-height: 46px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0 13px;
  color: var(--text-muted);
  background: #fafafa;
}

.quote-search-input input {
  border: 0;
  background: transparent;
  box-shadow: none;
  font-size: 13.5px;
}

.quote-search-results {
  display: grid;
  gap: 7px;
}

.quote-search-result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.quote-search-result h3 {
  margin: 2px 0 2px;
  font-size: 15px;
  line-height: 1.25;
}

.quote-search-result p {
  margin: 0;
  color: var(--text-muted);
  font-size: 12px;
}

.quote-search-result > strong {
  font-size: 15px;
  white-space: nowrap;
}

.quote-customer-step,
.quote-rules-step {
  min-height: min(660px, calc(100vh - 210px));
  display: grid;
  place-items: center;
  padding: 34px 0 46px;
}

.quote-customer-step-card,
.quote-rules-step-card {
  width: min(820px, 100%);
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: 0 18px 46px rgba(24, 24, 27, 0.07);
}

.quote-rules-step-card {
  width: min(940px, 100%);
}

.quote-step-head {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 30px 30px 24px;
  border-bottom: 1px solid var(--border);
  background:
    linear-gradient(180deg, rgba(250, 250, 250, 0.95), rgba(255, 255, 255, 1)),
    var(--surface);
}

.quote-step-number {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: var(--radius);
  color: var(--surface);
  background: var(--text);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.quote-step-head h2 {
  margin: 4px 0 6px;
  color: var(--text);
  font-size: 26px;
  line-height: 1.18;
  letter-spacing: 0;
}

.quote-step-head p {
  max-width: 560px;
  margin: 0;
  color: var(--text-muted);
}

.quote-rules-body {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  min-height: 360px;
}

.quote-rules-side {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 26px 24px;
  border-right: 1px solid var(--border);
  background:
    linear-gradient(180deg, rgba(250, 250, 250, 0.96), rgba(244, 244, 245, 0.76)),
    var(--surface-2);
}

.quote-rule-customer {
  display: grid;
  gap: 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.quote-rule-customer span {
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.quote-rule-customer strong {
  min-width: 0;
  color: var(--text);
  font-size: 18px;
  line-height: 1.2;
}

.quote-rule-customer em {
  color: var(--text-muted);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
}

.quote-rule-guide {
  display: grid;
  gap: 7px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
  background: rgba(255, 255, 255, 0.62);
}

.quote-rule-guide span {
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.quote-rule-guide strong {
  color: var(--text);
  font-size: 15px;
  line-height: 1.2;
}

.quote-rule-guide p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.45;
}

.quote-customer-step-form,
.quote-rules-step-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 24px 30px 30px;
}

.quote-rules-step-form {
  grid-template-columns: 1fr;
  align-content: space-between;
  gap: 22px;
  padding: 26px;
}

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

.quote-guided-path {
  display: grid;
  gap: 16px;
}

.quote-guided-step {
  position: relative;
  min-height: 88px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
  color: var(--text);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 250, 250, 0.9)),
    var(--surface);
  text-align: left;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, opacity .16s ease;
}

.quote-guided-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 34px;
  top: calc(100% + 1px);
  width: 2px;
  height: 14px;
  border-radius: 999px;
  background: var(--border-strong);
  opacity: .45;
}

.quote-guided-step.is-linked::after {
  background: var(--text);
  opacity: 1;
}

.quote-guided-step:hover:not(:disabled) {
  border-color: var(--text);
  box-shadow: 0 14px 34px rgba(24, 24, 27, 0.08);
  transform: translateY(-1px);
}

.quote-guided-step.is-active {
  border-color: var(--text);
}

.quote-guided-step.is-complete {
  border-color: var(--border-strong);
}

.quote-guided-step.is-disabled {
  cursor: not-allowed;
  opacity: .58;
  box-shadow: none;
}

.quote-guided-node {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: var(--radius);
  color: var(--text-muted);
  background: var(--accent-soft);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .04em;
}

.quote-guided-step.is-active .quote-guided-node,
.quote-guided-step.is-complete .quote-guided-node {
  color: var(--surface);
  background: var(--text);
}

.quote-guided-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.quote-guided-copy small {
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.quote-guided-copy strong {
  overflow: hidden;
  color: var(--text);
  font-size: 17px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quote-guided-copy em {
  overflow: hidden;
  color: var(--text-muted);
  font-size: 13px;
  font-style: normal;
  font-weight: 650;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quote-guided-step svg {
  width: 18px;
  height: 18px;
  color: var(--text-muted);
  justify-self: end;
}

.quote-financing-choice {
  display: grid;
  gap: 14px;
  padding-top: 2px;
}

.quote-financing-head h3 {
  margin: 5px 0 4px;
  font-size: 18px;
  line-height: 1.2;
}

.quote-financing-head p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
}

.quote-financing-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.quote-financing-card {
  position: relative;
  display: grid;
  gap: 7px;
  min-height: 132px;
  padding: 15px 44px 15px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.quote-financing-card:hover {
  transform: translateY(-1px);
  border-color: var(--border-strong);
  box-shadow: 0 12px 28px rgba(24, 24, 27, .06);
}

.quote-financing-card.is-selected {
  border-color: #18181b;
  background: linear-gradient(145deg, #fff 0%, #faf8f4 100%);
  box-shadow: inset 0 0 0 1px #18181b;
}

.quote-financing-brand {
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.quote-financing-card strong {
  font-size: 16px;
  line-height: 1.22;
}

.quote-financing-rate {
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  background: #18181b;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.quote-financing-card small {
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 650;
}

.quote-financing-selected {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  padding: 5px;
  background: #18181b;
  color: #fff;
  opacity: 0;
  transform: scale(.84);
  transition: opacity .16s ease, transform .16s ease;
}

.quote-financing-card.is-selected .quote-financing-selected {
  opacity: 1;
  transform: scale(1);
}

.quote-customer-step-form label,
.quote-rules-step-form label {
  display: grid;
  gap: 7px;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 700;
}

.quote-customer-step-form input,
.quote-rules-step-form input,
.quote-rules-step-form select {
  min-height: 52px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 13px;
  color: var(--text);
  background: var(--surface);
  font-size: 15px;
  font-weight: 600;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.quote-rules-step-form input,
.quote-rules-step-form select {
  min-height: 56px;
  padding-inline: 15px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 250, 250, 0.9)),
    var(--surface);
}

.quote-customer-step-form input:focus,
.quote-rules-step-form input:focus,
.quote-rules-step-form select:focus {
  border-color: var(--text);
  background: var(--surface);
  box-shadow: 0 0 0 4px rgba(24, 24, 27, 0.08);
  outline: none;
}

.quote-customer-step-form .wide,
.quote-rules-step-form .wide {
  grid-column: 1 / -1;
}

.quote-step-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(128px, auto) minmax(220px, auto);
  justify-content: end;
  gap: 12px;
  margin-top: 6px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

.quote-step-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: var(--radius);
  padding: 0 18px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.quote-step-button svg {
  width: 18px;
  height: 18px;
}

.quote-step-button:hover {
  transform: translateY(-1px);
}

.quote-step-back {
  border: 1px solid var(--border);
  color: var(--text);
  background: var(--surface);
}

.quote-step-back:hover {
  border-color: var(--border-strong);
  background: var(--surface-2);
}

.quote-step-next {
  border: 1px solid var(--text);
  color: var(--surface);
  background: var(--text);
  box-shadow: 0 14px 30px rgba(24, 24, 27, 0.16);
}

.quote-step-next:hover {
  background: #27272a;
  box-shadow: 0 18px 38px rgba(24, 24, 27, 0.2);
}

.quote-customer-step {
  min-height: min(600px, calc(100vh - 210px));
  padding: 28px 0 42px;
}

.quote-customer-step-card {
  width: min(760px, 100%);
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(20, 20, 24, .06);
}

.quote-customer-step-card .quote-step-head {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  padding: 24px 26px 22px;
  background: #fff;
}

.quote-customer-step-card .quote-step-number {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 780;
  box-shadow: none;
}

.quote-customer-step-card .quote-step-head h2 {
  margin: 0 0 5px;
  font-size: 25px;
  font-weight: 760;
  line-height: 1.12;
}

.quote-customer-step-card .quote-step-head p {
  max-width: 500px;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.45;
}

.quote-customer-step-form {
  gap: 15px 16px;
  padding: 22px 26px 26px;
}

.quote-customer-step-form label {
  gap: 7px;
  color: var(--text-muted);
  font-size: 11.5px;
  font-weight: 760;
  letter-spacing: .02em;
}

.quote-optional-label {
  margin-left: 6px;
  color: var(--text-soft);
  font-size: 10px;
  font-style: normal;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.quote-customer-step-form input {
  min-height: 46px;
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  font-size: 14px;
  font-weight: 620;
}

.quote-customer-step-form input:focus {
  border-color: var(--border-strong);
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .055);
}

.quote-customer-step-form .wide {
  margin-top: 2px;
}

.quote-customer-step-card .quote-step-actions {
  gap: 10px;
  margin-top: 4px;
  padding-top: 18px;
}

.quote-customer-step-card .quote-step-button {
  min-height: 46px;
  border-radius: 10px;
  padding: 0 16px;
  font-size: 13.5px;
  font-weight: 760;
}

.quote-customer-step-card .quote-step-back {
  background: #fff;
}

.quote-customer-step-card .quote-step-next {
  min-width: 210px;
  box-shadow: 0 10px 22px rgba(24, 24, 27, .12);
}

.quote-customer-step-card .quote-step-button:hover {
  transform: none;
}

.quote-customer-step-card .quote-step-next:hover {
  box-shadow: 0 12px 26px rgba(24, 24, 27, .14);
}

/* Quote rules step: refined wizard layout */
.quote-rules-step {
  min-height: min(640px, calc(100vh - 205px));
  padding: 26px 0 42px;
}

.quote-rules-step-card {
  width: min(980px, 100%);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(24, 24, 27, .055);
}

.quote-rules-step-card .quote-step-head {
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 15px;
  padding: 25px 28px 22px;
  background: #fff;
}

.quote-rules-step-card .quote-step-number {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 780;
  box-shadow: none;
}

.quote-rules-step-card .quote-step-head h2 {
  margin: 1px 0 5px;
  font-size: 26px;
  font-weight: 760;
  line-height: 1.12;
}

.quote-rules-step-card .quote-step-head p {
  max-width: 620px;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.45;
}

.quote-rules-body {
  grid-template-columns: 246px minmax(0, 1fr);
  min-height: 0;
}

.quote-rules-side {
  gap: 12px;
  padding: 24px;
  background: #fbfbfc;
}

.quote-rule-customer,
.quote-rule-guide {
  border-radius: 11px;
  box-shadow: none;
}

.quote-rule-customer {
  gap: 7px;
  padding: 15px;
}

.quote-rule-customer strong {
  font-size: 17px;
  font-weight: 760;
}

.quote-rule-customer em,
.quote-rule-guide p {
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 620;
}

.quote-rule-guide {
  padding: 15px;
  background: #fff;
}

.quote-rules-step-form {
  gap: 20px;
  padding: 24px 28px 28px;
}

.quote-guided-path {
  gap: 10px;
}

.quote-guided-step {
  min-height: 74px;
  grid-template-columns: 38px minmax(0, 1fr) 22px;
  gap: 13px;
  border-color: #e9e9eb;
  border-radius: 12px;
  padding: 12px 14px;
  background: #fff;
  box-shadow: none;
  outline: none;
  transition: border-color .14s ease, background .14s ease, opacity .14s ease;
}

.quote-guided-step:not(:last-child)::after {
  left: 32px;
  top: calc(100% + 1px);
  width: 1px;
  height: 8px;
  background: #dedee2;
  opacity: 1;
}

.quote-guided-step:hover:not(:disabled) {
  border-color: #d8d8dc;
  box-shadow: none;
  transform: none;
}

.quote-guided-step:focus-visible {
  border-color: var(--text);
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .07);
}

.quote-guided-step.is-active {
  border-color: var(--text);
  background: #fcfcfd;
  box-shadow: inset 0 0 0 1px var(--text);
}

.quote-guided-step.is-complete {
  border-color: #dedee2;
  background: #fff;
}

.quote-guided-step.is-disabled {
  opacity: .46;
}

.quote-guided-node {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #f4f4f5;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 780;
}

.quote-guided-step.is-active .quote-guided-node,
.quote-guided-step.is-complete .quote-guided-node {
  background: var(--text);
  color: #fff;
}

.quote-guided-copy small {
  color: var(--text-soft);
  font-size: 10.5px;
  font-weight: 780;
  letter-spacing: .13em;
}

.quote-guided-copy strong {
  font-size: 15.5px;
  font-weight: 760;
}

.quote-guided-copy em {
  color: var(--text-muted);
  font-size: 12.5px;
  font-weight: 620;
}

.quote-guided-step svg {
  width: 17px;
  height: 17px;
  color: var(--text-soft);
}

.quote-financing-choice {
  gap: 12px;
  padding-top: 2px;
}

.quote-financing-head .section-kicker {
  color: var(--text-soft);
}

.quote-financing-head h3 {
  margin: 3px 0 4px;
  font-size: 18px;
  font-weight: 760;
}

.quote-financing-head p {
  font-size: 13px;
  line-height: 1.35;
}

.quote-financing-options {
  gap: 10px;
}

.quote-financing-card {
  min-height: 112px;
  gap: 8px;
  border-color: #e7e7ea;
  border-radius: 12px;
  padding: 14px 42px 14px 15px;
  box-shadow: none;
  outline: none;
}

.quote-financing-card:hover {
  transform: none;
  border-color: #d8d8dc;
  box-shadow: none;
}

.quote-financing-card:focus-visible {
  border-color: var(--text);
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .07);
}

.quote-financing-card.is-selected {
  border-color: var(--text);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--text);
}

.quote-financing-brand {
  font-size: 10.5px;
  font-weight: 780;
  letter-spacing: .13em;
}

.quote-financing-card strong {
  font-size: 15.5px;
  font-weight: 760;
}

.quote-financing-rate {
  padding: 4px 8px;
  font-size: 10.5px;
  font-weight: 760;
}

.quote-financing-card small {
  font-size: 11px;
  font-weight: 620;
  line-height: 1.35;
}

.quote-financing-selected {
  top: 14px;
  right: 14px;
  width: 21px;
  height: 21px;
}

.quote-rules-step-card .quote-step-actions {
  gap: 10px;
  margin-top: 0;
  padding-top: 18px;
}

.quote-rules-step-card .quote-step-button {
  min-height: 46px;
  border-radius: 10px;
  padding: 0 16px;
  font-size: 13.5px;
  font-weight: 760;
}

.quote-rules-step-card .quote-step-next {
  min-width: 224px;
  box-shadow: 0 10px 22px rgba(24, 24, 27, .12);
}

.quote-rules-step-card .quote-step-button:hover {
  transform: none;
}

.quote-rules-step-card .quote-step-next:hover {
  box-shadow: 0 12px 26px rgba(24, 24, 27, .14);
}

.quote-rule-modal-panel {
  width: min(1180px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0;
  background: var(--surface);
}

.quote-rule-modal-panel .modal-heading {
  align-items: start;
  padding: 24px;
  border-bottom: 1px solid var(--border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(250, 250, 250, 0.92)),
    var(--surface);
}

.quote-modal-title {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: start;
  gap: 16px;
  min-width: 0;
}

.quote-modal-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: var(--radius);
  color: var(--surface);
  background: var(--text);
  box-shadow: 0 14px 28px rgba(24, 24, 27, 0.14);
}

.quote-modal-icon svg {
  width: 24px;
  height: 24px;
}

.quote-rule-modal-panel .modal-heading h3 {
  margin-top: 5px;
  color: var(--text);
  font-size: 30px;
  line-height: 1.12;
}

.quote-rule-modal-panel .icon-button {
  width: 42px;
  height: 42px;
  border-color: var(--border);
  color: var(--text-muted);
  background: var(--surface-2);
}

.quote-rule-modal-panel .cd-close {
  width: 38px;
  height: 38px;
  border: 1px solid var(--cd-rule, var(--border));
  border-radius: 8px;
  color: var(--cd-muted, var(--text-muted));
  background: #fff;
  transform: none;
  transition: all .15s ease;
}

.quote-rule-modal-panel .cd-close:hover,
.quote-rule-modal-panel .cd-close:focus-visible {
  color: #fff;
  background: var(--cd-graphite, var(--text));
  border-color: var(--cd-graphite, var(--text));
  box-shadow: none;
  outline: none;
  transform: rotate(90deg);
}

.quote-rule-modal-panel .cd-close svg {
  width: 20px;
  height: 20px;
  display: block;
  stroke: currentColor;
}

.quote-rule-modal-copy {
  max-width: 620px;
  margin: 8px 0 0;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.5;
}

.quote-rule-modal-count {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin-top: 12px;
  border-radius: 999px;
  padding: 5px 10px;
  color: var(--text-muted);
  background: var(--accent-soft);
  font-size: 12px;
  font-weight: 850;
}

.quote-modal-close {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0 13px 0 15px;
  color: var(--text);
  background: var(--surface);
  font-weight: 850;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.quote-modal-close:hover {
  border-color: var(--text);
  background: var(--surface-2);
  box-shadow: 0 12px 26px rgba(24, 24, 27, 0.1);
  transform: translateY(-1px);
}

.quote-modal-close svg {
  width: 17px;
  height: 17px;
}

.quote-company-modal-panel {
  width: min(1520px, calc(100vw - 48px));
  height: min(980px, calc(100vh - 48px));
  border-radius: var(--radius-lg);
  box-shadow: 0 28px 80px rgba(24, 24, 27, 0.2);
}

.quote-rule-modal-panel-sm {
  width: min(1020px, 100%);
  height: auto;
  min-height: 0;
}

.quote-rule-room-grid {
  padding: 24px 28px 28px;
}

.quote-rule-company-grid,
.quote-rule-room-grid {
  display: grid;
  align-content: start;
  gap: 14px;
  overflow: auto;
  padding: 20px 24px 24px;
  background: var(--surface-2);
}

.quote-rule-company-grid {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  grid-auto-rows: minmax(274px, auto);
  gap: 16px;
  padding: 22px 24px 28px;
}

.quote-rule-room-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.quote-company-choice,
.quote-room-choice {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px;
  color: var(--text);
  background: var(--surface);
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

.quote-company-choice {
  height: 100%;
  min-height: 274px;
  grid-template-rows: auto auto minmax(82px, 1fr) auto;
  gap: 11px;
  padding: 20px;
}

.quote-company-choice:hover,
.quote-room-choice:hover,
.quote-company-choice.is-selected,
.quote-room-choice.is-selected {
  border-color: var(--text);
  background: var(--surface);
  box-shadow: 0 12px 30px rgba(24, 24, 27, 0.08);
  transform: translateY(-1px);
}

.quote-free-choice {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 274px;
  padding: 20px;
  border-color: rgba(24, 24, 27, 0.28);
  color: var(--surface);
  background:
    radial-gradient(120% 80% at 90% 10%, rgba(255, 255, 255, 0.06), transparent 55%),
    linear-gradient(160deg, #18181b 0%, #27272a 60%, #1f1f23 100%);
}

.quote-free-choice .quote-choice-chips {
  position: relative;
  z-index: 2;
}

.quote-free-choice::after {
  content: "";
  position: absolute;
  right: -22%;
  bottom: -28%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.09) 0%, transparent 65%);
  pointer-events: none;
  filter: blur(8px);
  z-index: 0;
}

.quote-free-choice:hover,
.quote-free-choice.is-selected {
  border-color: var(--text);
  background:
    linear-gradient(135deg, rgba(24, 24, 27, 1), rgba(39, 39, 42, 0.96)),
    var(--text);
  box-shadow: 0 18px 44px rgba(24, 24, 27, 0.22);
}

.quote-free-choice > * {
  position: relative;
  z-index: 1;
}

.quote-free-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: var(--radius);
  color: var(--text);
  background: var(--surface);
}

.quote-free-icon svg {
  width: 21px;
  height: 21px;
}

.quote-company-choice-kicker,
.quote-room-choice > span {
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.quote-company-choice strong,
.quote-room-choice strong {
  color: var(--text);
  font-size: 21px;
  line-height: 1.2;
}

.quote-free-choice .quote-company-choice-kicker,
.quote-free-choice strong,
.quote-free-choice p,
.quote-free-choice em {
  color: var(--surface);
}

.quote-free-choice .quote-company-choice-kicker {
  opacity: .68;
}

.quote-free-choice p,
.quote-free-choice em {
  opacity: .76;
}

.quote-company-choice p {
  margin: 0;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.45;
}

.quote-company-foot {
  display: grid;
  align-content: end;
  gap: 10px;
  min-width: 0;
  padding-top: 13px;
  border-top: 1px solid var(--border);
}

.quote-company-environments {
  color: var(--text-soft);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.quote-free-choice .quote-company-foot {
  border-top-color: rgba(255, 255, 255, 0.13);
}

.quote-free-choice .quote-company-environments {
  color: rgba(255, 255, 255, 0.58);
}

.quote-company-choice em,
.quote-room-choice em {
  color: var(--text-muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
}

.quote-free-choice p,
.quote-free-choice em {
  color: var(--surface);
  opacity: .76;
}

.quote-choice-chips {
  display: block;
  min-width: 0;
  width: 100%;
  overflow: hidden;
  --quote-chip-loop-gap: 10px;
}

.quote-choice-track {
  display: flex;
  align-items: center;
  gap: var(--quote-chip-loop-gap);
  width: max-content;
  will-change: transform;
}

.quote-choice-set {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 6px;
  min-width: max-content;
}

.quote-choice-set-clone {
  display: none;
}

.quote-choice-chips.is-scrolling .quote-choice-set-clone {
  display: inline-flex;
}

.quote-choice-chips.is-scrolling .quote-choice-track {
  animation: quote-chip-carousel var(--quote-chip-loop-duration, 14s) linear infinite;
}

@keyframes quote-chip-carousel {
  to {
    transform: translateX(calc(-50% - (var(--quote-chip-loop-gap) / 2)));
  }
}

.quote-choice-chips span,
.quote-choice-chips .qc-chip,
.qc-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 11px 0 9px;
  border-radius: 999px;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: -0.005em;
  line-height: 1;
  transition: background .14s ease, border-color .14s ease, transform .14s ease;
}

.quote-choice-chips .qc-chip svg,
.qc-chip svg {
  width: 13px;
  height: 13px;
  color: var(--text-muted);
  stroke-width: 1.8;
  flex: 0 0 13px;
}

.quote-company-choice:hover .qc-chip {
  background: var(--surface-2);
  border-color: var(--border-strong);
}

.quote-free-choice .quote-choice-chips span,
.quote-free-choice .quote-choice-chips .qc-chip {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
}

.quote-free-choice .quote-choice-chips .qc-chip svg {
  color: rgba(255, 255, 255, 0.7);
}

.quote-free-choice:hover .qc-chip,
.quote-free-choice.is-selected .qc-chip {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.18);
}

@media (prefers-reduced-motion: reduce) {
  .quote-choice-chips.is-scrolling {
    overflow-x: auto;
    scrollbar-width: none;
  }

  .quote-choice-chips.is-scrolling::-webkit-scrollbar {
    display: none;
  }

  .quote-choice-chips.is-scrolling .quote-choice-track {
    animation: none;
  }

  .quote-choice-chips.is-scrolling .quote-choice-set-clone {
    display: none;
  }
}

.quote-validity-picker {
  display: grid;
  gap: 16px;
  padding: 0 18px 18px;
}

.quote-validity-picker label {
  display: grid;
  gap: 8px;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
}

.quote-validity-picker input {
  min-height: 58px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 14px;
  color: var(--text);
  background: var(--surface-2);
  font-size: 17px;
  font-weight: 750;
}

.quote-validity-picker input:focus {
  border-color: var(--text);
  box-shadow: 0 0 0 4px rgba(24, 24, 27, 0.08);
  outline: none;
}

.quote-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(300px, 0.68fr);
  align-items: stretch;
  gap: 20px;
}

.quote-main {
  display: contents;
  min-width: 0;
}

.quote-setup-grid {
  display: contents;
}

.quote-customer-panel,
.quote-rules-panel,
.quote-builder-panel {
  display: grid;
  gap: 12px;
}

.quote-customer-panel,
.quote-rules-panel {
  min-width: 0;
}

.quote-customer-panel {
  order: 1;
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden;
}

.quote-rules-panel {
  order: 2;
}

.quote-customer-panel > div:first-child {
  display: grid;
  gap: 4px;
}

.customer-lookup-button {
  width: 100%;
  min-height: 76px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(41, 48, 82, 0.13);
  border-radius: var(--radius);
  padding: 12px;
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(240, 225, 209, 0.56)),
    var(--white);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 14px 30px rgba(23, 20, 17, 0.05);
  text-align: left;
}

.customer-lookup-button svg {
  width: 42px;
  height: 42px;
  padding: 10px;
  border-radius: var(--radius);
  color: var(--white);
  background: var(--blueprint);
}

.customer-lookup-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.customer-lookup-copy small {
  color: var(--walnut-dark);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.1;
  text-transform: uppercase;
}

.customer-lookup-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 16px;
  line-height: 1.25;
}

.customer-lookup-copy em {
  overflow: hidden;
  color: rgba(23, 20, 17, 0.56);
  font-size: 12px;
  font-weight: 800;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-lookup-button b {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  color: var(--blueprint);
  background: rgba(41, 48, 82, 0.09);
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}

.customer-lookup-button:hover b {
  color: var(--white);
  background: var(--blueprint);
}

.customer-form-grid {
  height: 100%;
  align-content: start;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: auto auto auto minmax(44px, 1fr);
  gap: 12px;
  padding-top: 2px;
}

.customer-form-grid label {
  gap: 6px;
  min-width: 0;
  color: rgba(23, 20, 17, 0.58);
  font-size: 12px;
  font-weight: 850;
}

.customer-form-grid .wide {
  grid-column: 1 / -1;
}

.customer-form-grid input {
  min-height: 48px;
  border: 1px solid rgba(41, 48, 82, 0.13);
  padding: 12px 13px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.72)),
    var(--white);
  font-size: 15px;
  font-weight: 780;
}

.customer-save-button {
  grid-column: 1 / -1;
  align-self: end;
  justify-self: end;
  min-width: 188px;
  min-height: 48px;
  border: 1px solid rgba(23, 20, 17, 0.08);
  box-shadow: 0 16px 30px rgba(23, 20, 17, 0.12);
}

.quote-setup-grid .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.compact-heading,
.quote-builder-heading {
  margin-bottom: 0;
}

.quote-builder-panel {
  grid-column: 1 / -1;
  order: 4;
  border-color: rgba(41, 48, 82, 0.14);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 242, 236, 0.9)),
    var(--white);
}

.quote-builder-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.quote-builder-heading h3 {
  margin-top: 4px;
}

.quote-summary {
  order: 3;
  display: grid;
  gap: 14px;
  min-width: 0;
  align-self: stretch;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.wide {
  grid-column: span 2;
}

.item-form {
  display: grid;
  grid-template-columns: 150px minmax(260px, 1fr) 76px 140px 128px auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.68);
}

.item-form.is-free {
  grid-template-columns: minmax(320px, 1fr) 76px 140px 128px auto;
}

.project-code-wrap,
.item-select-wrap {
  min-width: 0;
}

.environment-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.environment-list span {
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  color: var(--white);
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 11px;
  font-weight: 900;
}

.environment-list span.is-active {
  color: var(--ink);
  background: var(--sand);
  border-color: rgba(255, 255, 255, 0.6);
}

.environment-list.light {
  margin-top: 10px;
}

.environment-list.light span {
  color: var(--blueprint);
  background: rgba(41, 48, 82, 0.08);
  border-color: rgba(41, 48, 82, 0.12);
}

.environment-list.light span.is-active {
  color: var(--white);
  background: var(--blueprint);
  border-color: var(--blueprint);
}

.segmented {
  display: inline-grid;
  grid-auto-flow: column;
  padding: 3px;
  border-radius: var(--radius);
  background: rgba(240, 225, 209, 0.82);
  box-shadow: inset 0 0 0 1px rgba(23, 20, 17, 0.05);
}

.segmented button {
  min-height: 34px;
  border: 0;
  border-radius: 6px;
  padding: 8px 10px;
  color: rgba(23, 20, 17, 0.64);
  background: transparent;
  font-weight: 800;
}

.segmented button.is-active {
  color: var(--white);
  background: var(--ink);
}

.line-table {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.6);
}

.line-table table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.line-table th,
.line-table td {
  padding: 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-size: 13px;
}

.line-table small {
  display: block;
  margin-top: 4px;
  color: rgba(23, 20, 17, 0.52);
  font-weight: 800;
}

.line-table th {
  color: rgba(23, 20, 17, 0.54);
  background: rgba(240, 225, 209, 0.5);
  font-size: 12px;
  text-transform: uppercase;
}

.line-table tr:last-child td {
  border-bottom: 0;
}

.number {
  text-align: right !important;
  white-space: nowrap;
}

.icon-button {
  width: 34px;
  height: 34px;
  min-height: 34px;
  padding: 0;
  border: 1px solid var(--line);
  color: var(--wine);
  background: rgba(123, 66, 66, 0.08);
}

.totals span {
  font-weight: 700;
}

.total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.totals {
  display: grid;
  gap: 10px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.totals span {
  color: rgba(23, 20, 17, 0.56);
}

.total-row.grand {
  font-size: 24px;
  font-weight: 900;
}

.search-input {
  max-width: 260px;
}

.company-grid {
  display: block;
  columns: 3 320px;
  column-gap: 12px;
}

.company-card {
  display: grid;
  align-content: start;
  gap: 12px;
  break-inside: avoid;
  min-height: 0;
  margin: 0 0 12px;
  padding: 16px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(252, 249, 244, 0.84)),
    var(--white);
}

.company-card.has-environment-rules {
  border-color: rgba(41, 48, 82, 0.18);
}

.company-card-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.company-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  color: rgba(23, 20, 17, 0.62);
  background: rgba(240, 225, 209, 0.7);
  font-size: 11px;
  font-weight: 900;
}

.company-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding-top: 4px;
}

.company-stats label,
.pricing-field {
  min-width: 0;
}

.pricing-field {
  gap: 6px;
}

.pricing-field span,
.environment-rule-head span {
  color: rgba(23, 20, 17, 0.5);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.pricing-field input,
.environment-rule-fields input {
  min-height: 40px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.84);
  font-weight: 900;
}

.environment-pricing {
  display: grid;
  gap: 0;
  margin-top: 2px;
  border-top: 1px solid var(--line);
}

.environment-rule {
  display: grid;
  grid-template-columns: minmax(108px, 0.55fr) minmax(0, 1.45fr);
  gap: 12px;
  align-items: end;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.environment-rule:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.environment-rule-head {
  display: grid;
  gap: 4px;
}

.environment-rule-head strong {
  font-size: 13px;
}

.environment-rule-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.environment-rule-fields label {
  min-width: 0;
}

.data-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.inventory-row,
.customer-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px;
}

.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.empty-state {
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.45);
}

.empty-state.compact {
  padding: 12px;
  font-size: 12px;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 24px;
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(23, 20, 17, 0.48);
  backdrop-filter: blur(10px);
}

.modal-panel {
  position: relative;
  z-index: 1;
  width: min(920px, 100%);
  max-height: min(760px, calc(100vh - 48px));
  display: grid;
  gap: 14px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.64);
  border-radius: var(--radius);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 242, 236, 0.94)),
    var(--white);
  box-shadow: var(--shadow);
}

.modal-panel.quote-rule-modal-panel {
  width: min(1180px, calc(100vw - 72px));
  max-height: calc(100vh - 72px);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0;
}

.modal-panel.quote-company-modal-panel {
  width: calc(100vw - 72px);
  height: calc(100vh - 72px);
  max-height: calc(100vh - 72px);
}

.modal-panel.quote-rule-modal-panel-sm {
  width: min(1020px, calc(100vw - 72px));
  height: auto;
  max-height: calc(100vh - 72px);
}

.modal-panel.quote-rule-modal-panel-xs {
  width: min(720px, calc(100vw - 72px));
  height: auto;
  max-height: calc(100vh - 72px);
}

.modal-panel.quote-line-company-modal-panel {
  width: min(1120px, calc(100vw - 72px));
  height: min(700px, calc(100vh - 72px));
}

.modal-panel.quote-minimum-modal-panel {
  width: min(760px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(250,249,247,.98)),
    var(--surface);
  box-shadow: 0 28px 82px rgba(18, 18, 20, .25);
}

.quote-minimum-modal-panel .modal-heading {
  align-items: start;
  padding: 27px 28px 25px;
  border-bottom: 1px solid var(--border);
}

.quote-minimum-modal-panel .modal-heading h3 {
  margin: 5px 0 0;
  color: var(--text);
  font-size: 28px;
  line-height: 1.12;
}

.quote-minimum-modal-icon {
  color: #f6e5c5;
  background: radial-gradient(circle at 38% 34%, #403629 0%, #18181b 70%);
}

.quote-minimum-close {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  border-color: var(--border);
  color: var(--text-muted);
  background: var(--surface-2);
}

.quote-minimum-close:hover {
  border-color: var(--text);
  color: var(--text);
  background: var(--surface);
}

.quote-minimum-modal-body {
  overflow-y: auto;
  padding: 24px 28px 28px;
}

.quote-minimum-value-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.quote-minimum-value-card {
  display: grid;
  gap: 9px;
  min-height: 108px;
  padding: 18px 19px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  color: inherit;
  font: inherit;
  text-align: left;
}

.quote-minimum-value-card span {
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 760;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.quote-minimum-value-card strong {
  color: var(--text);
  font-size: 25px;
  font-weight: 760;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
}

.quote-minimum-value-card small {
  color: #8a6428;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .13em;
}

.quote-minimum-value-card.is-recommended {
  border-color: rgba(184,138,62,.34);
  background: #fbf9f5;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.quote-minimum-value-card.is-recommended:hover {
  border-color: rgba(184,138,62,.68);
  background: #fffaf1;
  box-shadow: 0 14px 30px rgba(115, 80, 26, .1);
  transform: translateY(-1px);
}

.quote-minimum-value-card.is-recommended:focus-visible {
  outline: 0;
  border-color: #b88a3e;
  box-shadow: 0 0 0 4px rgba(184,138,62,.15);
}

.quote-minimum-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.quote-minimum-card-foot b {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #8a6428;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: none;
}

.quote-minimum-card-foot svg {
  width: 13px;
  height: 13px;
}

.quote-minimum-control {
  display: grid;
  gap: 21px;
  margin-top: 17px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.84);
}

.quote-minimum-control-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 22px;
}

.quote-minimum-control-head p {
  max-width: 320px;
  margin: 7px 0 0;
  color: var(--text-muted);
  font-size: 12.5px;
  line-height: 1.45;
}

.quote-minimum-input {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 178px;
  height: 52px;
  padding: 0 13px;
  border: 1px solid rgba(184,138,62,.34);
  border-radius: 12px;
  background: #fbf9f5;
  color: var(--text);
}

.quote-minimum-input:focus-within {
  border-color: rgba(184,138,62,.62);
  box-shadow: 0 0 0 4px rgba(184,138,62,.1);
}

.quote-minimum-input input {
  min-width: 0;
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 18px;
  font-weight: 760;
  font-variant-numeric: tabular-nums;
}

.quote-minimum-input span {
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 700;
}

.quote-minimum-range-wrap {
  display: grid;
  gap: 15px;
  padding: 9px 4px 0;
}

.quote-minimum-range {
  --range-fill: 100%;
  width: 100%;
  height: 28px;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
}

.quote-minimum-range:focus {
  outline: 0;
}

.quote-minimum-range::-webkit-slider-runnable-track {
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, #b88a3e 0%, #b88a3e var(--range-fill), #ece8e1 var(--range-fill), #ece8e1 100%);
  box-shadow: inset 0 0 0 1px rgba(24,24,27,.035);
}

.quote-minimum-range::-moz-range-track {
  height: 8px;
  border-radius: 999px;
  background: #ece8e1;
}

.quote-minimum-range::-moz-range-progress {
  height: 8px;
  border-radius: 999px;
  background: #b88a3e;
}

.quote-minimum-range::-webkit-slider-thumb {
  width: 22px;
  height: 22px;
  margin-top: -7px;
  appearance: none;
  -webkit-appearance: none;
  border: 4px solid #fff;
  border-radius: 50%;
  background: #b88a3e;
  box-shadow: 0 2px 7px rgba(24,24,27,.18), 0 0 0 1px rgba(184,138,62,.25);
  transition: transform .15s ease, box-shadow .15s ease;
}

.quote-minimum-range::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border: 4px solid #fff;
  border-radius: 50%;
  background: #b88a3e;
  box-shadow: 0 2px 7px rgba(24,24,27,.18), 0 0 0 1px rgba(184,138,62,.25);
}

.quote-minimum-range:hover::-webkit-slider-thumb,
.quote-minimum-range:focus-visible::-webkit-slider-thumb {
  transform: scale(1.08);
  box-shadow: 0 4px 12px rgba(24,24,27,.2), 0 0 0 5px rgba(184,138,62,.13);
}

.quote-minimum-range-labels {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--text-muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.quote-minimum-range-labels span {
  display: grid;
  gap: 3px;
}

.quote-minimum-range-labels span:last-child {
  text-align: right;
}

.quote-minimum-range-labels small {
  color: #a1a1aa;
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.quote-minimum-range-labels b {
  font-size: 12px;
  font-weight: 650;
}

.quote-minimum-range-labels strong {
  color: #8a6428;
  border: 1px solid rgba(184,138,62,.24);
  border-radius: 999px;
  padding: 7px 13px;
  background: #fbf9f5;
  font-size: 13px;
}

.quote-minimum-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 3px;
}

.quote-minimum-reset,
.quote-minimum-apply {
  min-height: 48px;
  padding-inline: 18px;
  border-radius: 12px;
  font-weight: 750;
}

@media (max-width: 620px) {
  .quote-minimum-value-grid {
    grid-template-columns: 1fr;
  }

  .quote-minimum-control-head {
    align-items: stretch;
    flex-direction: column;
  }

  .quote-minimum-input {
    width: 100%;
  }
}

.quote-line-company-body {
  display: grid;
  grid-template-columns: minmax(430px, 1fr) 350px;
  min-height: 0;
  background: var(--surface-2);
}

.quote-line-company-grid {
  display: grid;
  align-content: start;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  overflow-y: auto;
  padding: 22px;
  border-right: 1px solid var(--border);
}

.quote-line-company-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 12px;
  min-height: 94px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.quote-line-company-card:hover,
.quote-line-company-card.is-selected {
  border-color: rgba(184, 138, 62, .48);
  background: #fdfbf7;
}

.quote-line-company-card.is-selected {
  box-shadow: inset 0 0 0 1px rgba(184, 138, 62, .18);
}

.quote-line-company-avatar {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: #18181b;
  font-size: 12px;
  font-weight: 750;
}

.quote-line-company-copy small,
.quote-line-company-copy strong,
.quote-line-company-copy em {
  display: block;
}

.quote-line-company-copy small {
  margin-bottom: 4px;
  color: var(--text-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.quote-line-company-copy strong {
  font-size: 14px;
  line-height: 1.2;
}

.quote-line-company-copy em {
  margin-top: 5px;
  color: var(--text-muted);
  font-size: 11.5px;
  font-style: normal;
}

.quote-line-company-card svg {
  width: 15px;
  height: 15px;
  color: var(--text-muted);
}

.quote-line-company-side {
  min-height: 0;
  overflow-y: auto;
  padding: 26px 22px;
  background: #fff;
}

.quote-line-company-side h4 {
  margin: 8px 0 8px;
  color: var(--text);
  font-size: 20px;
}

.quote-line-company-side p {
  margin: 0 0 22px;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.5;
}

.quote-line-environment-options {
  display: grid;
  gap: 10px;
}

.quote-line-environment-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px;
  align-items: center;
  column-gap: 10px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}

.quote-line-environment-option:hover {
  border-color: rgba(184, 138, 62, .5);
  background: #fdfbf7;
}

.quote-line-environment-option span {
  font-size: 14px;
  font-weight: 720;
}

.quote-line-environment-option small {
  grid-column: 1;
  margin-top: 4px;
  color: var(--text-muted);
  font-size: 11px;
}

.quote-line-environment-option svg {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: 15px;
  height: 15px;
}

.quote-line-environment-card {
  grid-template-columns: 48px minmax(0, 1fr) 32px;
  gap: 13px;
  min-height: 104px;
  padding: 16px;
  border-color: rgba(24, 24, 27, .1);
  border-radius: 17px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,251,.94)),
    var(--surface);
  box-shadow: 0 8px 22px rgba(24, 24, 27, .04);
}

.quote-line-environment-card:hover {
  border-color: rgba(24, 24, 27, .26);
  background: #fff;
}

.quote-line-environment-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(24, 24, 27, .1);
  border-radius: 15px;
  background: #fff;
  color: var(--text);
}

.quote-line-environment-icon svg {
  width: 21px;
  height: 21px;
  stroke-width: 1.75;
}

.quote-line-environment-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.quote-line-environment-copy small {
  grid-column: auto;
  margin: 0;
  color: #9a9aa2;
  font-size: 10.5px;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.quote-line-environment-copy strong {
  color: var(--text);
  font-size: 17px;
  font-weight: 720;
  line-height: 1.18;
}

.quote-line-environment-copy em {
  color: var(--text-muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 620;
  line-height: 1.35;
}

.quote-line-environment-arrow {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid rgba(24, 24, 27, .08);
  border-radius: 999px;
  background: rgba(255, 255, 255, .82);
  color: var(--text-muted);
}

.quote-line-environment-card .quote-line-environment-arrow svg {
  grid-column: auto;
  grid-row: auto;
  width: 14px;
  height: 14px;
  stroke-width: 2;
}

.quote-line-pdf-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
}

.quote-line-pdf-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.quote-line-pdf-summary span {
  color: var(--text-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.quote-line-pdf-summary strong {
  grid-column: 1;
  color: var(--text);
  font-size: 15px;
  line-height: 1.2;
}

.quote-line-pdf-summary button {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.quote-line-pdf-import,
.quote-line-manual-option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  border-radius: 12px;
  font: inherit;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease, opacity .16s ease;
}

.quote-line-pdf-import {
  border: 1px solid #18181b;
  background: #18181b;
  color: #fff;
}

.quote-line-pdf-import:disabled {
  opacity: .64;
  cursor: wait;
}

.quote-line-pdf-import svg,
.quote-line-manual-option svg {
  width: 17px;
  height: 17px;
}

.quote-line-pdf-panel p {
  margin: 0;
  color: var(--text-muted);
  font-size: 11.5px;
  line-height: 1.5;
}

.quote-line-manual-option {
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
}

.quote-line-manual-option:hover {
  border-color: rgba(184, 138, 62, .5);
  background: #fdfbf7;
}

@media (max-width: 820px) {
  .modal-panel.quote-line-company-modal-panel {
    width: calc(100vw - 28px);
    height: calc(100vh - 28px);
  }

  .quote-line-company-body {
    grid-template-columns: 1fr;
    overflow-y: auto;
  }

  .quote-line-company-grid {
    grid-template-columns: 1fr;
    overflow: visible;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
}

.modal-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 18px 0;
}

.modal-heading h3 {
  margin: 4px 0 0;
}

.modal-search {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin: 0 18px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.78);
}

.modal-search svg {
  width: 18px;
  height: 18px;
  color: var(--walnut-dark);
}

.modal-search input {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.customer-lookup-results {
  display: grid;
  gap: 12px;
  overflow: auto;
  padding: 0 18px 18px;
}

.lookup-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.72);
}

.lookup-card-head,
.lookup-quote-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.lookup-card h4 {
  margin: 0 0 4px;
  font-size: 15px;
}

.lookup-card p,
.lookup-quote-row small {
  margin: 0;
  color: rgba(23, 20, 17, 0.56);
  font-size: 12px;
  font-weight: 800;
}

.lookup-quotes {
  display: grid;
  gap: 8px;
}

.lookup-quote-row {
  grid-template-columns: minmax(0, 1fr) auto auto;
  padding: 10px;
  border-radius: var(--radius);
  background: rgba(240, 225, 209, 0.42);
}

.lookup-quote-row strong,
.lookup-quote-row span {
  font-weight: 900;
}

.toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 40;
  max-width: 340px;
  padding: 12px 14px;
  border-radius: var(--radius);
  color: var(--white);
  background: var(--ink);
  box-shadow: var(--shadow);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1180px) {
  .metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .company-grid {
    columns: 2 320px;
  }

  .quote-layout,
  .two-column {
    grid-template-columns: 1fr;
  }

  .quote-summary {
    position: static;
  }
}

@media (max-width: 1180px) {
  .quote-settings-body {
    grid-template-columns: 1fr;
  }

  .quote-settings-email {
    grid-column: auto;
    grid-row: auto;
  }
}

@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    height: auto;
  }

  .topbar {
    position: static;
  }

  #topbarTabs.is-quote-tabs {
    flex-wrap: wrap;
    gap: 8px 14px;
  }

  .quote-flow-crumbs {
    width: 100%;
  }

  .quote-settings-panel {
    width: calc(100vw - 24px);
    height: calc(100vh - 24px);
    max-height: calc(100vh - 24px);
    border-radius: 18px;
  }

  .quote-settings-head {
    padding: 14px 16px;
  }

  .quote-settings-title {
    gap: 12px;
  }

  .quote-settings-icon {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  .quote-settings-body {
    padding: 14px;
  }

  .quote-settings-section {
    padding: 16px;
  }

  .quote-settings-section-head {
    align-items: stretch;
    flex-direction: column;
  }

  .quote-settings-row,
  .quote-settings-row-transport {
    grid-template-columns: 34px minmax(0, 1fr) 34px;
  }

  .quote-settings-row label,
  .quote-settings-row-transport label {
    grid-column: 2 / 3;
  }

  .quote-settings-row-index {
    grid-row: 1 / span 6;
  }

  .quote-settings-remove {
    grid-column: 3 / 4;
    grid-row: 1;
  }

  .form-grid,
  .data-grid,
  .metrics-grid {
    grid-template-columns: 1fr;
  }

  .quote-setup-grid {
    grid-template-columns: 1fr;
  }

  .quote-start-cards {
    grid-template-columns: 1fr;
  }

  .company-grid {
    columns: 1;
  }

  .wide {
    grid-column: auto;
  }

  .item-form,
  .item-form.is-free {
    grid-template-columns: 1fr 1fr;
  }

  .customer-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .customer-form-grid .wide,
  .customer-form-grid .button {
    grid-column: 1 / -1;
  }

  .project-code-wrap,
  .item-select-wrap,
  .item-form .button {
    grid-column: 1 / -1;
  }

  .environment-rule {
    grid-template-columns: 1fr;
  }

  .environment-rule-fields {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .workspace,
  .sidebar {
    padding: 18px;
  }

  .topbar {
    display: grid;
    margin: -18px -18px 18px;
    padding: 18px;
  }

  .topbar-actions,
  .panel-heading,
  .quote-builder-heading,
  .quote-search-result,
  .company-card-head,
  .lookup-card-head,
  .lookup-quote-row,
  .quote-card,
  .inventory-row,
  .customer-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .item-form,
  .item-form.is-free,
  .customer-form-grid,
  .company-stats {
    grid-template-columns: 1fr !important;
  }

  .customer-form-grid label:not(.wide),
  .customer-form-grid .wide,
  .customer-form-grid .button {
    grid-column: auto;
  }

  .customer-lookup-button {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .customer-lookup-button svg {
    width: 38px;
    height: 38px;
  }

  .customer-lookup-button b {
    display: none;
  }

  .quote-start {
    min-height: 0;
    place-items: stretch;
    padding-top: 12px;
  }

  .quote-start-heading {
    text-align: left;
  }

  .quote-start-heading h2 {
    font-size: 24px;
  }

  .quote-start-card {
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-areas:
      "icon idx"
      "copy copy"
      "action action";
    min-height: 176px;
    padding: 18px;
    gap: 12px;
  }

  .quote-start-card i,
  .quote-start-card svg {
    width: 44px;
    height: 44px;
    padding: 12px;
  }

  .quote-start-card-copy {
    padding-top: 0;
  }

  .quote-start-action {
    width: 100%;
  }

  .quote-customer-step,
  .quote-rules-step {
    min-height: 0;
    place-items: stretch;
    padding-top: 12px;
  }

  .quote-customer-step-card,
  .quote-rules-step-card {
    padding: 0;
  }

  .quote-step-head,
  .quote-customer-step-form,
  .quote-rules-step-form {
    grid-template-columns: 1fr;
  }

  .quote-step-head {
    padding: 22px 18px 18px;
  }

  .quote-customer-step-form,
  .quote-rules-step-form {
    padding: 18px;
  }

  .quote-rules-body {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .quote-rules-side {
    grid-template-columns: 1fr;
    padding: 18px;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

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

  .quote-guided-step {
    grid-template-columns: 38px minmax(0, 1fr) 20px;
    padding: 13px;
  }

  .quote-guided-node {
    width: 38px;
    height: 38px;
  }

  .quote-guided-step:not(:last-child)::after {
    left: 31px;
  }

  .quote-guided-copy strong,
  .quote-guided-copy em {
    white-space: normal;
  }

  .quote-financing-options {
    grid-template-columns: 1fr;
  }

  .quote-rule-customer {
    grid-template-columns: 1fr;
  }

  .quote-customer-step-form .wide,
  .quote-rules-step-form .wide,
  .quote-step-actions {
    grid-column: auto;
  }

  .quote-step-actions {
    display: grid;
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .quote-customer-step-card .quote-step-head {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    padding: 20px 18px 18px;
  }

  .quote-customer-step-card .quote-step-number {
    width: 38px;
    height: 38px;
  }

  .quote-customer-step-card .quote-step-head h2 {
    font-size: 22px;
  }

  .quote-customer-step-form {
    gap: 13px;
    padding: 18px;
  }

  .quote-customer-step-card .quote-step-actions {
    grid-template-columns: 1fr;
  }

  .quote-customer-step-card .quote-step-next {
    min-width: 0;
  }

  .customer-save-button {
    justify-self: stretch;
    min-width: 0;
  }

  .segmented {
    width: 100%;
    grid-auto-flow: row;
  }

  .modal {
    padding: 14px;
  }

  .modal-panel {
    max-height: calc(100vh - 28px);
  }

  .quote-rule-modal-panel,
  .quote-company-modal-panel {
    width: calc(100vw - 28px);
    height: calc(100vh - 28px);
    max-height: calc(100vh - 28px);
  }

  .quote-rule-modal-panel .modal-heading {
    padding: 18px;
  }

  .quote-rule-company-grid,
  .quote-rule-room-grid {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .quote-company-choice {
    min-height: 0;
  }

}

@media print {
  body {
    background: white;
  }

  .sidebar,
  .topbar,
  .login-shell,
  .button,
  .segmented,
  .toast {
    display: none !important;
  }

  .app-shell {
    display: block;
  }

  .workspace {
    padding: 0;
  }

  .view {
    display: none !important;
  }

  #quoteView {
    display: block !important;
  }

  .quote-layout {
    grid-template-columns: 1fr;
  }

  .panel {
    box-shadow: none;
    break-inside: avoid;
  }
}

/* --- Pipeline (redesign): card list --- */
.muted { color: var(--walnut-dark); font-size: 0.78rem; }
.badge { background: var(--sand); color: var(--ink); border-radius: 999px; padding: 1px 9px; font-size: 0.72rem; }

.pl-toolbar {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  background: var(--paper-deep); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 10px 12px; margin: 12px 0 16px;
}
.pl-toolbar input, .pl-toolbar select {
  border: 1px solid var(--line); border-radius: var(--radius); padding: 7px 9px; background: var(--white); color: var(--ink);
}
.pl-chips { display: flex; gap: 6px; margin-left: auto; }
.pl-chip { font-size: 0.72rem; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); cursor: pointer; }
.pl-chip.is-active { background: var(--blueprint); color: #fff; border-color: var(--blueprint); }

.pl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.pl-card { text-align: left; background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 13px 14px; box-shadow: var(--shadow); cursor: pointer; }
.pl-card:hover { border-color: var(--walnut); }
.pl-card h4 { margin: 0 0 2px; font-size: 0.95rem; }
.pl-meta { font-size: 0.74rem; color: var(--walnut-dark); margin-bottom: 9px; }
.pl-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; font-size: 0.72rem; color: var(--walnut-dark); }
.pl-foot .next { color: var(--blueprint); font-weight: 600; }

/* --- Lead detail page (Make-style, full screen) --- */
.button.danger { background: var(--wine); color: #fff; border-color: var(--wine); }

.lead-page { position: fixed; inset: 0; z-index: 70; display: flex; flex-direction: column; background: var(--bg); }
.mk-topbar { background: var(--surface); border-bottom: 1px solid var(--border); padding: 12px 22px; gap: 14px; display: flex; align-items: center; }
.mk-back { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); padding: 7px 12px; font-weight: 500; font-size: 13px; cursor: pointer; font-family: inherit; color: var(--text); }
.mk-back:hover { background: var(--surface); border-color: var(--border-strong); }
.mk-title { display: flex; align-items: center; gap: 12px; }
.mk-title h3 { margin: 0; font-size: 16px; color: var(--text); font-weight: 600; }
.mk-assign { margin-left: auto; font-size: 12px; color: var(--text-muted); display: flex; align-items: center; gap: 6px; }
.mk-assign select { border: 1px solid var(--border); border-radius: var(--radius); padding: 6px 8px; background: var(--surface); color: var(--text); font: inherit; min-height: 0; }

.mk-body { flex: 1; display: flex; min-height: 0; }
.mk-canvas {
  flex: 1; overflow: auto; display: flex; align-items: center; gap: 0; padding: 40px 32px;
  background-color: #1e1f26;
  background-image: radial-gradient(rgba(255, 255, 255, 0.07) 1.4px, transparent 1.4px);
  background-size: 22px 22px;
}
.mk-node {
  flex: 0 0 auto; display: flex; flex-direction: column; gap: 10px; min-width: 168px; text-align: left;
  background: #2a2c36; border: 2px solid #3a3d4a; border-radius: 14px; padding: 16px;
  color: #cfd2db; font-size: 0.9rem; cursor: pointer; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.mk-node:hover { border-color: #5b8def; }
.mk-dot { width: 12px; height: 12px; border-radius: 50%; background: #3a3d4a; }
.mk-node-label { font-weight: 600; color: #fff; }
.mk-node.done { border-color: #3f9d6b; }
.mk-node.done .mk-dot { background: #3f9d6b; }
.mk-node.current { border-color: #5b8def; }
.mk-node.current .mk-dot { background: #5b8def; }
.mk-node.selected { box-shadow: 0 0 0 3px rgba(91, 141, 239, 0.55), 0 8px 22px rgba(0, 0, 0, 0.4); }
.mk-conn { flex: 0 0 38px; height: 2px; background: #3a3d4a; position: relative; }
.mk-conn.done { background: #3f9d6b; }
.mk-conn::after { content: "›"; position: absolute; right: -5px; top: -13px; color: #5a5e6c; font-size: 20px; }
.mk-offramp { flex: 0 0 auto; margin-left: 14px; align-self: center; border-radius: 12px; padding: 12px 16px; font-size: 0.85rem; color: #fff; font-weight: 600; }
.mk-offramp.lost { background: var(--wine); }
.mk-offramp.warn { background: #9a5a1a; }

.mk-panel { background: var(--surface); border-left: 1px solid var(--border); flex: 0 0 320px; overflow-y: auto; padding: 18px; font-size: 0.84rem; }
.mk-panel-head .label { color: var(--text-soft); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; }
.mk-panel-head h4 { color: var(--text); font-size: 14px; margin: 2px 0 12px; font-weight: 600; }
.mk-panel h5 { color: var(--text-muted); font-size: 12px; margin: 14px 0 6px; font-weight: 500; }
.mk-panel-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.lead-origin-dl { display: grid; grid-template-columns: auto 1fr; gap: 5px 12px; margin: 0; }
.lead-origin-dl dt { color: var(--text-muted); font-weight: 500; }
.lead-origin-dl dd { color: var(--text); margin: 0; word-break: break-word; }
.mk-list { list-style: none; padding: 0; margin: 4px 0; display: grid; gap: 4px; font-size: 12px; }

.mk-toolbar { background: var(--surface); border-top: 1px solid var(--border); padding: 12px 22px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

@media (max-width: 820px) {
  .mk-body { flex-direction: column; }
  .mk-panel { flex: 0 0 auto; border-left: none; border-top: 1px solid var(--line); }
}

/* === Marketing filters (mono) === */
.mkt-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin: 0; }
.mkt-filters label { display: grid; gap: 4px; font-size: 12px; color: var(--text-muted); font-weight: 400; }
.mkt-filters input, .mkt-filters select { border: 1px solid var(--border); border-radius: var(--radius); padding: 7px 9px; background: var(--surface); color: var(--text); font: inherit; min-height: 0; }
.mkt-spend { width: 92px; }

/* === Redesign shell (Shakuro) === */
.app-shell { display: grid; grid-template-columns: 256px 1fr; min-height: 100vh; background: var(--bg); transition: grid-template-columns .18s ease; }
.app-shell.is-sidebar-collapsed { grid-template-columns: 72px 1fr; }
.sidebar { background: var(--surface); border-right: 1px solid var(--border); display: flex; flex-direction: column; padding: 12px 12px 14px; gap: 4px; position: sticky; top: 0; height: 100vh; overflow-x: hidden; overflow-y: auto; transition: padding .18s ease; }
.app-main { padding: 22px 28px 56px; }

/* sidebar elements */
.sb-sidebar-toggle { width: 32px; height: 32px; margin: 0 2px 6px auto; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text-muted); box-shadow: 0 1px 2px rgba(15, 23, 42, .08); display: grid; place-items: center; cursor: pointer; transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease; }
.sb-sidebar-toggle:hover { background: var(--surface-2); border-color: var(--border-strong); color: var(--text); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(15, 23, 42, .08); }
.sb-sidebar-toggle svg { width: 16px; height: 16px; stroke-width: 1.9; }
.sb-brand { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 10px; border-radius: var(--radius); border: none; background: transparent; width: 100%; text-align: left; }
.sb-brand .logo { width: 28px; height: 28px; border-radius: 7px; background: var(--accent); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 13px; }
.sb-brand .org { font-weight: 600; flex: 1; color: var(--text); }

.sb-search { display: flex; align-items: center; gap: 8px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); padding: 7px 10px; color: var(--text-muted); font-size: 13px; margin: 8px 2px 6px; }
.sb-search svg { width: 14px; height: 14px; }
.sb-search input { flex: 1; border: none; outline: none; background: transparent; font: inherit; color: inherit; min-height: 0; padding: 0; }
.sb-search kbd { font-size: 11px; padding: 1px 6px; border: 1px solid var(--border); border-radius: 4px; background: var(--surface); color: var(--text-muted); font-family: inherit; }

.sb-group { padding: 12px 2px 4px; font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-soft); }
.sb-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: var(--radius); cursor: pointer; color: var(--text); text-decoration: none; font-size: 13.5px; border: none; background: transparent; width: 100%; text-align: left; }
.sb-item:hover { background: var(--surface-2); }
.sb-item.is-active { background: var(--accent-soft); font-weight: 600; }
.sb-item .badge-new { font-size: 10px; padding: 1px 6px; border-radius: 4px; background: #f1ebfa; color: #6b21a8; margin-left: auto; font-weight: 600; letter-spacing: 0.02em; }
.sb-item .count { margin-left: auto; font-size: 12px; color: var(--text-muted); }
.sb-item .icon { width: 16px; height: 16px; color: var(--text-muted); flex: 0 0 16px; }

.sb-spacer { flex: 1; min-height: 8px; }
.sb-profile { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--radius); cursor: pointer; border: 1px solid var(--border); background: var(--surface); width: 100%; text-align: left; position: relative; }
.sb-profile:hover { background: var(--surface-2); }
.sb-profile .avatar { width: 28px; height: 28px; border-radius: 50%; background: var(--accent-soft); color: var(--text); font-weight: 600; display: grid; place-items: center; font-size: 12px; flex: 0 0 28px; }
.sb-profile .sb-profile-copy { min-width: 0; flex: 1 1 auto; display: grid; gap: 2px; }
.sb-profile .name,
.sb-profile .email { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sb-profile .name { font-weight: 600; font-size: 13px; }
.sb-profile .email { font-size: 11px; color: var(--text-muted); }
.sb-profile .icon { width: 16px; height: 16px; flex: 0 0 16px; margin-left: auto; color: var(--text-muted); }

.sb-menu { position: absolute; bottom: 60px; left: 12px; right: 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 6px; display: none; z-index: 50; }
.sb-menu.is-open { display: block; }
.sb-menu-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: var(--radius-sm); cursor: pointer; font-size: 13px; border: none; background: transparent; width: 100%; text-align: left; color: var(--text); }
.sb-menu-item:hover { background: var(--surface-2); }
.sb-menu-item svg { width: 16px; height: 16px; color: var(--text-muted); }
.sb-menu .sep { height: 1px; background: var(--border); margin: 4px 0; }

.app-shell.is-sidebar-collapsed .sidebar {
  padding: 12px 10px 14px;
}

.app-shell.is-sidebar-collapsed .sb-sidebar-toggle {
  width: 30px;
  height: 30px;
  margin: 0 auto 6px;
  border-radius: 9px;
}

.app-shell.is-sidebar-collapsed .sb-brand {
  justify-content: center;
  min-height: 40px;
  gap: 0;
  padding: 4px;
}

.app-shell.is-sidebar-collapsed .sb-brand .logo {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .08);
}

.app-shell.is-sidebar-collapsed .sb-brand .org,
.app-shell.is-sidebar-collapsed .sb-search input,
.app-shell.is-sidebar-collapsed .sb-search kbd,
.app-shell.is-sidebar-collapsed .sb-item .badge-new,
.app-shell.is-sidebar-collapsed .sb-item .count,
.app-shell.is-sidebar-collapsed .sb-profile > span:not(.avatar),
.app-shell.is-sidebar-collapsed .sb-profile > .icon {
  display: none;
}

.app-shell.is-sidebar-collapsed .sb-search,
.app-shell.is-sidebar-collapsed .sb-item,
.app-shell.is-sidebar-collapsed .sb-profile {
  justify-content: center;
  gap: 0;
  padding-inline: 8px;
}

.app-shell.is-sidebar-collapsed .sb-item {
  min-height: 34px;
  font-size: 0;
}

.app-shell.is-sidebar-collapsed .sb-item .icon,
.app-shell.is-sidebar-collapsed .sb-search svg {
  width: 18px;
  height: 18px;
  flex-basis: 18px;
}

.app-shell.is-sidebar-collapsed .sb-group {
  height: 1px;
  margin: 8px 9px 4px;
  padding: 0;
  border-top: 1px solid var(--border);
  color: transparent;
  font-size: 0;
}

.app-shell.is-sidebar-collapsed .sb-profile {
  width: 44px;
  height: 44px;
  min-height: 44px;
  margin: 8px auto 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
}

.app-shell.is-sidebar-collapsed .sb-profile:hover {
  background: transparent;
}

.app-shell.is-sidebar-collapsed .sb-profile .avatar {
  width: 36px;
  height: 36px;
  flex-basis: 36px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--text);
  font-size: 12px;
  font-weight: 650;
}

.app-shell.is-sidebar-collapsed .sb-profile:hover .avatar {
  background: var(--accent-soft);
  border-color: transparent;
}

.app-shell.is-sidebar-collapsed .sb-menu {
  right: auto;
  bottom: 12px;
  left: 60px;
  width: 220px;
}

/* topbar */
.topbar { position: relative; height: 56px; min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 4px 0 14px; margin-bottom: 18px; border-bottom: 1px solid var(--border); box-sizing: border-box; }
.topbar .tabs { flex: 1; gap: 26px; min-width: 0; }
.tab { font-size: 14px; padding: 6px 0; }
.tab.is-active { border-bottom-width: 1.5px; }
.tab.add { font-size: 18px; font-weight: 400; }
.tabs { display: flex; gap: 22px; align-items: center; }
.tab { height: 36px; min-height: 0; display: inline-flex; align-items: center; box-sizing: border-box; padding: 0; border: none; background: transparent; cursor: pointer; color: var(--text-muted); font-size: 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; font: inherit; }
.tab.is-active { color: var(--text); font-weight: 600; border-bottom-color: var(--accent); }
.tab.add { color: var(--text-soft); padding: 0 6px; }
.cta-row { display: flex; align-items: center; gap: 8px; }

#topbarTabs.is-quote-tabs {
  gap: 26px;
  min-width: 0;
  align-items: center;
  overflow-x: auto;
  scrollbar-width: none;
}

#topbarTabs.is-quote-tabs::-webkit-scrollbar {
  display: none;
}

#topbarTabs.is-quote-tabs .tab {
  gap: 7px;
  height: 36px;
  min-height: 0;
  padding: 0;
  white-space: nowrap;
}

.quote-tab-count {
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: currentColor;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  opacity: .46;
  text-align: center;
}

#topbarTabs.is-quote-tabs .tab.is-active .quote-tab-count {
  border-color: transparent;
  background: transparent;
  color: currentColor;
  opacity: .72;
}

#topbarTabs.is-quote-flow {
  gap: 26px;
  min-width: 0;
  align-items: center;
  overflow-x: auto;
  scrollbar-width: none;
}

#topbarTabs.is-quote-flow::-webkit-scrollbar {
  display: none;
}

.quote-flow-crumbs {
  display: inline-flex;
  align-items: center;
  gap: 26px;
  max-width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow-x: auto;
  scrollbar-width: none;
}

.quote-flow-crumbs::-webkit-scrollbar {
  display: none;
}

.quote-flow-crumb {
  position: relative;
  height: 36px;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  gap: 6px;
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  outline: 0;
  transition: background .14s ease, color .14s ease, box-shadow .14s ease, opacity .14s ease;
}

.quote-flow-separator {
  display: none;
}

.quote-flow-separator::before {
  content: none;
}

.quote-flow-crumb:hover:not(:disabled) {
  color: var(--text);
}

.quote-flow-crumb:focus-visible {
  box-shadow: none;
  color: var(--text);
}

.quote-flow-crumb:disabled {
  cursor: not-allowed;
  opacity: .46;
}

.quote-flow-crumb.is-active {
  color: var(--text);
  border-bottom-color: var(--accent);
  box-shadow: none;
}

.quote-flow-index {
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: currentColor;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0;
  opacity: .58;
}

.quote-flow-crumb.is-complete:not(.is-active) .quote-flow-index {
  border-color: transparent;
  background: transparent;
  color: currentColor;
  opacity: .72;
}

.quote-flow-crumb.is-active .quote-flow-index {
  border-color: transparent;
  background: transparent;
  color: currentColor;
  opacity: .85;
}

.quote-flow-copy {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}

.quote-flow-copy strong {
  color: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}

.quote-flow-copy small {
  color: currentColor;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  opacity: .46;
}

#topbarTabs .tab[data-company-tab].is-active,
#topbarTabs .tab[data-company-category-tab].is-active {
  color: var(--text);
  border-bottom-color: var(--accent);
  font-weight: 600;
}

.topbar-filter-create {
  position: absolute;
  z-index: 42;
  top: 52px;
  left: 28px;
  display: grid;
  grid-template-columns: minmax(210px, 1fr) auto;
  gap: 10px;
  align-items: end;
  width: min(420px, calc(100vw - 48px));
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 8px 24px rgba(20, 20, 24, .08);
}

.topbar-filter-create label {
  display: grid;
  gap: 6px;
}

.topbar-filter-create label span {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.topbar-filter-create input {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  outline: none;
}

.topbar-filter-create input:focus {
  border-color: var(--border-strong);
  box-shadow: none;
}

.topbar-filter-create > div {
  display: flex;
  gap: 7px;
}

.topbar-filter-create button {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.topbar-filter-create button:last-child {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.topbar-private-price {
  position: relative;
  min-width: 180px;
  display: grid;
  gap: 3px;
  padding: 8px 14px 9px 17px;
  border: 1px solid rgba(184, 138, 62, .26);
  border-radius: 8px;
  background: linear-gradient(112deg, rgba(184, 138, 62, .09), rgba(255, 255, 255, .9) 48%);
  box-shadow: 0 6px 17px rgba(22, 22, 24, .035);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.topbar-private-price:hover,
.topbar-private-price:focus-visible {
  border-color: rgba(184, 138, 62, .46);
  background: linear-gradient(112deg, rgba(184, 138, 62, .14), rgba(255, 255, 255, .98) 54%);
  box-shadow: 0 12px 26px rgba(22, 22, 24, .07);
  outline: none;
  transform: translateY(-1px);
}

.topbar-private-price::before {
  position: absolute;
  left: 0;
  top: 9px;
  bottom: 9px;
  width: 2px;
  border-radius: 0 2px 2px 0;
  background: #b88a3e;
  content: "";
}

.topbar-private-price-label {
  color: var(--text-soft);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.topbar-private-price strong {
  color: var(--text);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.2;
}

.topbar-private-price.is-empty strong {
  color: var(--text-muted);
}

.topbar:has(#topbarTabs.is-quote-flow) .topbar-private-price {
  min-width: 150px;
  min-height: 38px;
  gap: 1px;
  padding: 5px 12px 6px 14px;
  border-radius: 9px;
}

.topbar:has(#topbarTabs.is-quote-flow) .topbar-private-price::before {
  top: 7px;
  bottom: 7px;
}

.topbar:has(#topbarTabs.is-quote-flow) .topbar-private-price-label {
  font-size: 8px;
  letter-spacing: .18em;
}

.topbar:has(#topbarTabs.is-quote-flow) .topbar-private-price strong {
  font-size: 12.5px;
  letter-spacing: .08em;
}

.topbar-quote-actions {
  position: relative;
}

.quote-settings-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 13px;
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  font-weight: 650;
  white-space: nowrap;
}

.quote-settings-toggle svg {
  width: 16px;
  height: 16px;
}

.topbar-quote-toggle {
  position: relative;
}

.topbar-quote-toggle.has-private-price::after {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #b88a3e;
  content: "";
}

.topbar-quote-menu {
  position: absolute;
  z-index: 40;
  top: calc(100% + 9px);
  right: 0;
  width: 286px;
  display: grid;
  gap: 7px;
  padding: 17px 18px 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 20px 46px rgba(20, 20, 24, .13);
}

.topbar-quote-menu::before {
  position: absolute;
  top: -6px;
  right: 13px;
  width: 10px;
  height: 10px;
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
  background: var(--surface);
  transform: rotate(45deg);
  content: "";
}

.topbar-quote-menu-kicker {
  color: var(--text-soft);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.topbar-quote-menu-label {
  color: var(--text-muted);
  font-size: 12px;
}

.topbar-quote-menu strong {
  margin: 2px 0;
  color: var(--text);
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .08em;
}

.topbar-quote-menu small {
  color: var(--text-soft);
  font-size: 11px;
}

.topbar-action-menu-button {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  width: 100%;
  padding: 9px 0;
  border: 0;
  border-top: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.topbar-action-menu-button:first-of-type {
  border-top: 0;
}

.topbar-action-menu-button > svg {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  color: var(--text-muted);
}

.topbar-action-menu-button span {
  display: grid;
  gap: 2px;
}

.topbar-action-menu-button strong {
  margin: 0;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: 0;
}

.topbar-action-menu-button small {
  color: var(--text-muted);
  font-size: 11.5px;
  line-height: 1.35;
}

.btn { border: 1px solid var(--border); background: var(--surface); color: var(--text); border-radius: 10px; padding: 7px 14px; font-size: 13px; cursor: pointer; font-weight: 500; font-family: inherit; line-height: 1.2; }
.btn:hover { background: var(--surface-2); }
.btn.primary { background: var(--accent); color: #fff; border-color: var(--accent); padding: 8px 16px; }
.btn.primary:hover { background: #000; }
.btn.icon { padding: 6px 8px; border-color: transparent; background: transparent; color: var(--text-muted); font-size: 18px; line-height: 1; }
.btn.icon:hover { background: var(--surface-2); color: var(--text); }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }

.quote-settings-panel {
  width: min(1720px, calc(100vw - 40px));
  height: min(940px, calc(100vh - 40px));
  max-height: calc(100vh - 40px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 34px 90px rgba(16, 16, 20, .24);
}

.quote-settings-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 18px 30px;
  border-bottom: 1px solid var(--border);
  background: #fff;
}

.quote-settings-title {
  display: flex;
  align-items: center;
  gap: 14px;
}

.quote-settings-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  border-radius: 11px;
  background: var(--accent);
  color: #fff;
  box-shadow: none;
}

.quote-settings-icon svg {
  width: 18px;
  height: 18px;
}

.quote-settings-title span:not(.quote-settings-icon),
.quote-settings-section-head span,
.quote-settings-field > span,
.quote-settings-row label > span {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.quote-settings-title h3 {
  margin: 3px 0 2px;
  font-size: clamp(22px, 1.4vw, 28px);
  line-height: 1.08;
  letter-spacing: 0;
}

.quote-settings-title p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.35;
}

.quote-settings-panel .cd-close {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  color: var(--text-muted);
}

.quote-settings-panel .cd-close:hover,
.quote-settings-panel .cd-close:focus-visible {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
  outline: 0;
}

.quote-settings-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
  grid-auto-rows: min-content;
  gap: 16px;
  padding: 18px;
  overflow: auto;
  background: #f5f5f6;
}

.quote-settings-section {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 18px 20px 20px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(16, 16, 20, .03);
}

.quote-settings-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 13px;
  border-bottom: 1px solid var(--border);
}

.quote-settings-section-head strong {
  display: block;
  margin-top: 4px;
  color: var(--text);
  font-size: 18px;
  line-height: 1.15;
}

.quote-settings-mini {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 15px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 12px;
  font-weight: 760;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.quote-settings-mini svg {
  width: 15px;
  height: 15px;
}

.quote-settings-list {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.quote-settings-row {
  display: grid;
  grid-template-columns: 42px minmax(130px, .72fr) minmax(260px, 1.45fr) minmax(142px, .85fr) minmax(96px, .45fr) minmax(96px, .45fr) 38px;
  gap: 12px;
  align-items: end;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fafafa;
}

.quote-settings-row-transport {
  grid-template-columns: 42px minmax(82px, .36fr) minmax(260px, 1.25fr) minmax(180px, .8fr) minmax(116px, .44fr) 38px;
}

.quote-settings-row-index {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  align-self: center;
  border: 1px solid #ececef;
  border-radius: 11px;
  background: #f2f2f3;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}

.quote-settings-row label,
.quote-settings-field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.quote-settings-row input,
.quote-settings-row select,
.quote-settings-field input,
.quote-settings-field textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 14px;
  font-weight: 620;
  outline: 0;
}

.quote-settings-row select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2371717a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
}

.quote-settings-field textarea {
  min-height: 220px;
  resize: vertical;
  line-height: 1.5;
}

.quote-settings-row input:focus,
.quote-settings-row select:focus,
.quote-settings-field input:focus,
.quote-settings-field textarea:focus {
  border-color: var(--text);
}

.quote-settings-remove {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  align-self: end;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: #fff;
  color: var(--text-soft);
}

.quote-settings-remove svg {
  width: 16px;
  height: 16px;
}

.quote-settings-remove:hover,
.quote-settings-remove:focus-visible {
  border-color: var(--border);
  background: #fff;
  color: var(--text);
  outline: 0;
}

.quote-settings-email {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: stretch;
  grid-template-columns: 1fr;
  align-content: start;
}

.quote-settings-hint {
  margin: -2px 0 0;
  color: var(--text-soft);
  font-size: 12px;
  line-height: 1.45;
}

.quote-settings-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 14px 18px;
  border-top: 1px solid var(--border);
  background: #fff;
}

.quote-settings-primary,
.quote-settings-secondary {
  min-height: 46px;
  padding: 0 20px;
  border-radius: 12px;
  font: inherit;
  font-size: 14px;
  font-weight: 760;
}

.quote-settings-primary {
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #fff;
}

.quote-settings-secondary {
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
}

/* === Primitives: pill, avatar, KPI === */
.pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 500; line-height: 1.4; }
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .7; }
.pill-green  { background: var(--pill-green-bg);  color: var(--pill-green-fg); }
.pill-yellow { background: var(--pill-yellow-bg); color: var(--pill-yellow-fg); }
.pill-blue   { background: var(--pill-blue-bg);   color: var(--pill-blue-fg); }
.pill-purple { background: var(--pill-purple-bg); color: var(--pill-purple-fg); }
.pill-red    { background: var(--pill-red-bg);    color: var(--pill-red-fg); }
.pill-gray   { background: var(--pill-gray-bg);   color: var(--pill-gray-fg); }

.avatar-ini { width: 28px; height: 28px; border-radius: 50%; background: var(--accent-soft); color: var(--text); font-weight: 600; font-size: 11px; display: inline-grid; place-items: center; letter-spacing: .03em; flex: 0 0 28px; }

.kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 28px; margin: 8px 0 26px; padding-bottom: 22px; border-bottom: 1px solid var(--border); }
.kpi { background: transparent; border: none; padding: 0; box-shadow: none; display: grid; grid-template-rows: 24px 52px 30px; align-content: start; }
.kpi .label { font-size: 13px; color: var(--text-muted); margin-bottom: 0; display: flex; align-items: center; gap: 6px; font-weight: 500; }
.kpi .label .arrow { color: var(--text-soft); font-size: 12px; }
.trend { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 6px; font-size: 12px; margin-left: 8px; font-weight: 600; }
.trend-up { background: var(--pill-green-bg); color: var(--pill-green-fg); }
.trend-down { background: var(--pill-red-bg); color: var(--pill-red-fg); }
.trend-flat { background: var(--pill-gray-bg); color: var(--pill-gray-fg); }
.kpi .kpi-value { min-width: 0; display: flex; align-items: flex-start; }
.kpi .num { font-size: 38px; font-weight: 600; letter-spacing: -0.02em; line-height: 1; color: var(--text); }
.kpi .pct { font-size: 12px; color: var(--text-muted); margin-left: 8px; font-weight: 500; }
.kpi .spark { height: 30px; margin-top: 0; color: var(--text-muted); width: 100%; display: block; }
.kpi .spark path,
.kpi .spark polyline { vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.kpi .spark-line { fill: none; stroke: currentColor; stroke-width: 1.35; opacity: 0.9; }
.kpi .gauge { position: relative; height: 30px; margin-top: 0; }
.kpi .gauge-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 12px; background-image: repeating-linear-gradient(to right, var(--text-soft) 0 1px, transparent 1px 4px); opacity: 0.7; }
.kpi .gauge-mark { position: absolute; top: 4px; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 7px solid var(--text); transform: translateX(-50%); z-index: 2; }
.kpi .gauge-fill { position: absolute; left: 0; bottom: 0; height: 12px; opacity: 0.95; pointer-events: none; }
.chart-wrap { position: relative; height: 30px; margin-top: 0; color: var(--text-muted); }
.chart-wrap svg { cursor: crosshair; width: 100%; height: 100%; display: block; }
.chart-tooltip { position: absolute; pointer-events: none; background: var(--text); color: #fff; font-size: 11px; padding: 3px 7px; border-radius: 4px; transform: translate(-50%, -100%); opacity: 0; transition: opacity .1s; top: -4px; white-space: nowrap; }
.chart-tooltip.is-visible { opacity: 1; }

/* === Toolbar row (filters | search | customize) === */
.toolbar-row { display: flex; align-items: center; gap: 14px; margin: 18px 0 12px; }
.toolbar-row .tr-filters { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 11px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); font: inherit; font-size: 13px; font-weight: 500; line-height: 1; cursor: pointer; transition: background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease; }
.toolbar-row .tr-filters:hover { border-color: var(--border-strong); background: var(--surface-2); }
.toolbar-row .tr-filters[aria-expanded="true"] { border-color: var(--accent); background: var(--accent); color: #fff; }
.toolbar-row .tr-filters:focus { outline: none; }
.toolbar-row .tr-filters:focus-visible { box-shadow: 0 0 0 3px rgba(24, 24, 27, .12); }
.toolbar-row .tr-filters svg { width: 14px; height: 14px; }
.toolbar-row .tr-search { flex: 0 1 280px; display: flex; align-items: center; gap: 8px; height: 32px; min-width: 180px; padding: 0 11px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--text-muted); transition: background .14s ease, border-color .14s ease, box-shadow .14s ease, color .14s ease; }
.toolbar-row .tr-search:hover { background: var(--surface-2); }
.toolbar-row .tr-search:focus-within { border-color: var(--border-strong); background: var(--surface); color: var(--text); box-shadow: 0 1px 2px rgba(24, 24, 27, .04); }
.toolbar-row .tr-search svg { width: 14px; height: 14px; }
.toolbar-row .tr-search input { appearance: none; -webkit-appearance: none; flex: 1; width: 100%; min-width: 0; min-height: 0; border: 0; outline: 0; background: transparent; box-shadow: none; color: var(--text); caret-color: var(--text); font: inherit; font-size: 13px; font-weight: 500; line-height: 1; padding: 0; }
.toolbar-row .tr-search input:focus { border: 0; outline: 0; box-shadow: none; }
.toolbar-row .tr-search input::placeholder { color: var(--text-muted); font-weight: 500; opacity: 1; }
.toolbar-row .tr-customize { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; border: none; background: transparent; color: var(--text); cursor: pointer; font: inherit; font-size: 13px; font-weight: 500; padding: 6px 8px; border-radius: 8px; }
.toolbar-row .tr-customize svg { width: 14px; height: 14px; }
.toolbar-row .tr-customize:hover { background: var(--surface-2); }

/* === Panel card + data table === */
.panel-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.panel-card-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.panel-card-head h3 { margin: 0; font-size: 14px; font-weight: 600; color: var(--text); }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table thead th { text-align: left; padding: 10px 14px; color: var(--text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; border-bottom: 1px solid var(--border); font-weight: 500; }
.data-table tbody td { padding: 10px 14px; border-bottom: 1px solid var(--border); color: var(--text); }
.data-table tbody tr:hover { background: var(--surface-2); }
.data-table tbody tr.is-selected { background: var(--accent-soft); }
.data-table .cell-name { display: flex; align-items: center; gap: 10px; font-weight: 500; }
.data-table .check { width: 14px; }
.data-table .check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border-color: transparent;
  border-radius: 4px;
  box-shadow: none;
  accent-color: var(--text);
  vertical-align: middle;
}
.data-table .check input[type="checkbox"]:focus,
.data-table .check input[type="checkbox"]:focus-visible {
  outline: 0;
  border-color: transparent;
  box-shadow: none;
}

/* === Clienti table extras === */
.row-search { border: 1px solid var(--border); background: var(--surface-2); border-radius: var(--radius); padding: 7px 10px; font: inherit; width: 280px; min-height: 0; }
.action-bar { position: sticky; bottom: 16px; margin: 18px auto 0; max-width: 460px; display: flex; align-items: center; gap: 10px; background: #18181b; color: #fff; border-radius: 999px; padding: 8px 14px; box-shadow: 0 12px 32px rgba(0,0,0,.25); }
.action-bar .action-btn { background: rgba(255,255,255,.08); border: none; color: #fff; width: 32px; height: 32px; border-radius: 999px; cursor: pointer; font-size: 14px; line-height: 1; }
.action-bar .action-btn:hover { background: rgba(255,255,255,.16); }
.action-bar .action-btn.danger:hover { background: var(--pill-red-fg); }
.action-bar .action-close { margin-left: 4px; background: transparent; color: #fff; border: none; cursor: pointer; font-size: 18px; line-height: 1; }

/* === Pipeline list (mono) === */
.pl-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px; cursor: pointer; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 10px; text-align: left; transition: border-color 0.15s, box-shadow 0.15s; }
.pl-card:hover { border-color: var(--border-strong); box-shadow: var(--shadow); }
.pl-card-top { display: flex; gap: 10px; align-items: center; }
.pl-card h4 { margin: 0; font-size: 14px; color: var(--text); font-weight: 600; }
.pl-meta { font-size: 12px; color: var(--text-muted); }
.pl-foot { display: flex; justify-content: space-between; font-size: 12px; color: var(--text-muted); }
.pl-foot .next { color: var(--text); font-weight: 600; }

.pl-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 10px 12px; margin-bottom: 16px; }
.pl-toolbar input, .pl-toolbar select { border: 1px solid var(--border); border-radius: var(--radius); padding: 7px 9px; background: var(--surface); color: var(--text); font: inherit; min-height: 0; }
.pl-chip { font-size: 12px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); cursor: pointer; color: var(--text); font: inherit; }
.pl-chip.is-active { background: var(--accent); color: #fff; border-color: var(--accent); }
.pl-chips { display: flex; gap: 6px; margin-left: auto; }

/* === Builder preventivi (mono) === */
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 18px; }
.panel-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.panel-heading h3 { font-size: 14px; font-weight: 600; margin: 0; color: var(--text); }
.form-grid { display: grid; gap: 10px; }
.form-grid input, .form-grid select, .form-grid textarea { border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 10px; background: var(--surface-2); font: inherit; min-height: 0; color: var(--text); }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color: var(--text); box-shadow: 0 0 0 3px var(--accent-soft); outline: none; }
.line-table { width: 100%; }
.totals { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; color: var(--text); }
.status-pill { display: inline-block; padding: 2px 10px; border-radius: 999px; background: var(--pill-gray-bg); color: var(--pill-gray-fg); font-size: 11.5px; font-weight: 500; }
.section-kicker { display: none; }

/* === Inline calendar (Scegli validità) — compatto & rifinito === */
.quote-validity-picker { display: grid; gap: 14px; padding: 22px 28px 26px; }
.cal-card { width: 100%; max-width: 620px; margin: 0 auto; background: var(--surface); border: 1px solid #e7e7eb; border-radius: 14px; padding: 18px 20px 16px; box-shadow: none; }
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cal-nav { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #e2e2e7; background: #fff; border-radius: 9px; cursor: pointer; color: #6f6f78; }
.cal-nav:hover { background: #f8f8f9; color: var(--text); }
.cal-nav:focus-visible { outline: none; border-color: #b8b8c0; box-shadow: 0 0 0 3px rgba(24, 24, 27, 0.06); }
.cal-nav svg { width: 15px; height: 15px; stroke-width: 2; }
.cal-month { font-size: 14.5px; font-weight: 680; color: var(--text); letter-spacing: -0.01em; }
.cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 5px; }
.cal-weekdays span { text-align: center; font-size: 10px; font-weight: 720; color: #9a9aa2; letter-spacing: 0.09em; text-transform: uppercase; padding: 5px 0; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.cal-day { height: 44px; display: grid; place-items: center; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--text); font-size: 14px; font-weight: 560; cursor: pointer; font-family: inherit; transition: background .12s, border-color .12s, color .12s; position: relative; }
.cal-day:hover:not(:disabled) { background: #f7f7f8; }
.cal-day:focus-visible { outline: none; border-color: #c9c9cf; box-shadow: 0 0 0 3px rgba(24, 24, 27, 0.06); }
.cal-day.cal-empty { cursor: default; }
.cal-day.is-today { font-weight: 720; color: var(--text); }
.cal-day.is-today::after { content: ""; position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
.cal-day.is-suggested { background: #fff; color: var(--text); border-color: rgba(31, 122, 68, 0.26); font-weight: 620; }
.cal-day.is-selected { background: #18181b; color: #fff; border-color: #18181b; }
.cal-day.is-suggested.is-selected { background: #18181b; color: #fff; border-color: #18181b; }
.cal-day.is-today.is-selected::after { background: #fff; }
.cal-foot { width: 100%; max-width: 620px; margin: 14px auto 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; background: #fafafa; border: 1px solid #e7e7eb; border-radius: 11px; font-size: 12.5px; color: var(--text-muted); flex-wrap: wrap; }
.cal-suggested { display: inline-flex; align-items: center; gap: 8px; }
.cal-suggested strong { color: var(--text); font-weight: 680; margin: 0 2px; }
.cal-dot { width: 7px; height: 7px; border-radius: 50%; background: #23844f; }
.cal-use-suggested { border: 1px solid #d9d9df; background: #fff; color: var(--text); border-radius: 999px; padding: 7px 13px; font-size: 12px; font-weight: 620; cursor: pointer; font-family: inherit; }
.cal-use-suggested:hover { background: #f6f6f7; color: var(--text); border-color: #cfcfd6; }
.cal-use-suggested:focus-visible { outline: none; border-color: #b8b8c0; box-shadow: 0 0 0 3px rgba(24, 24, 27, 0.06); }
.quote-validity-picker .quote-step-button { width: 100%; max-width: 620px; min-height: 48px; margin: 0 auto; border-radius: 11px; box-shadow: none; }
.quote-validity-picker .quote-step-button:hover { transform: none; box-shadow: none; }

/* === Aziende (card) === */
.company-toolbar {
  position: relative;
}

.company-toolbar .tr-filters,
.company-toolbar .tr-search,
.company-toolbar .tr-customize {
  transition: none;
}

.company-toolbar .tr-filters {
  position: relative;
}

.company-toolbar .tr-filters:hover,
.company-toolbar .tr-filters[aria-expanded="true"] {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

.company-toolbar .tr-filters.is-active {
  border-color: var(--border-strong);
  color: var(--text);
}

.company-toolbar .tr-filters.is-active::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 6px;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--text);
}

.company-toolbar .tr-search:hover,
.company-toolbar .tr-search:focus-within {
  border-color: transparent;
  background: transparent;
  color: var(--text-muted);
  box-shadow: none;
}

.company-toolbar .tr-customize:hover {
  background: transparent;
}

.company-toolbar-panels {
  position: relative;
  z-index: 10;
}

.company-filter-panel,
.company-customize-panel {
  position: absolute;
  top: -4px;
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 8px 24px rgba(20, 20, 24, .08);
}

.company-filter-panel {
  left: 0;
  width: min(560px, calc(100vw - 48px));
}

.company-customize-panel {
  right: 0;
  width: 300px;
}

.company-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.company-panel-head span,
.company-filter-panel strong {
  color: var(--text-soft);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.company-panel-head small {
  color: var(--text-muted);
  font-size: 12px;
}

.company-panel-head button {
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.company-filter-panel > div:not(.company-panel-head) {
  display: grid;
  gap: 8px;
}

.company-filter-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(126px, 1fr));
  gap: 7px;
}

.company-filter-chips button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 30px;
  min-width: 0;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  white-space: nowrap;
}

.company-filter-chips button svg {
  width: 13px;
  height: 13px;
}

.company-filter-chips button em {
  color: var(--text-soft);
  font-style: normal;
  font-size: 11px;
}

.company-filter-chips button.is-active:not([data-company-env-filter="all"]):not([data-company-category-filter="all"]) {
  border-color: var(--text);
  background: var(--text);
  color: #fff;
}

.company-filter-chips button.is-active:not([data-company-env-filter="all"]):not([data-company-category-filter="all"]) svg,
.company-filter-chips button.is-active:not([data-company-env-filter="all"]):not([data-company-category-filter="all"]) em {
  color: rgba(255, 255, 255, .68);
}

.company-customize-panel label {
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  justify-content: space-between;
  gap: 12px;
  min-height: 42px;
  padding: 7px 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 620;
  letter-spacing: 0;
  cursor: pointer;
}

.company-customize-panel label + label {
  border-top: 1px solid var(--border);
}

.company-customize-panel input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  display: block;
  flex: 0 0 36px;
  width: 36px;
  height: 22px;
  min-height: 22px;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--surface);
  box-shadow: none;
  outline: 0;
  cursor: pointer;
}

.company-customize-panel input[type="checkbox"]:checked {
  border-color: var(--text);
  background: var(--text);
}

.company-customize-panel input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(24, 24, 27, .16);
}

.company-customize-panel input[type="checkbox"]:checked::after {
  left: 17px;
  background: #fff;
}

.company-customize-panel input[type="checkbox"]:focus,
.company-customize-panel input[type="checkbox"]:focus-visible {
  outline: 0;
  box-shadow: none;
}

.az-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.az-card {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
  overflow: hidden;
  transition: none;
}
.az-card.is-important {
  border-color: var(--border);
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}
.az-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 96px;
  background: radial-gradient(120% 100% at 20% 0%, var(--surface-2) 0%, transparent 70%);
  pointer-events: none;
}
.az-card > * { position: relative; }
.az-card-star {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, .9);
  color: var(--text-soft);
  cursor: pointer;
  transition: none;
}
.az-card-star svg { width: 16px; height: 16px; }
.az-card-star.is-active {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}
.az-card-star.is-active svg {
  fill: currentColor;
}
.az-card-head { display: flex; align-items: center; gap: 12px; }
.az-card-head { padding-right: 40px; }
.az-card-head .avatar-ini { width: 44px; height: 44px; font-size: 14px; flex: 0 0 44px; border-radius: 12px; background: var(--text); color: #fff; }
.az-card-titles { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.az-card-kicker { font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-soft); }
.az-card-head h4 { margin: 0; font-size: 19px; font-weight: 600; color: var(--text); letter-spacing: -0.015em; line-height: 1.2; }
.az-card-desc { margin: 0; color: var(--text-muted); font-size: 13.5px; line-height: 1.55; }
.az-card-foot { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--border); overflow: hidden; }
.az-card-envcount { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-soft); }
.az-card-chips {
  --az-card-chip-gap: 6px;
  display: block;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: hidden;
  padding: 0 2px 2px 0;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.az-card-chips::-webkit-scrollbar {
  display: none;
}
.az-card-chips:focus,
.az-card-chips:focus-visible {
  outline: 0;
  box-shadow: none;
}
.az-card-chips.has-carousel {
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 26px), transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 26px), transparent 100%);
}
.az-card-chips-track {
  display: inline-flex;
  width: max-content;
  max-width: none;
  gap: var(--az-card-chip-gap);
  will-change: transform;
}
.az-card-chip-set {
  display: inline-flex;
  flex: 0 0 auto;
  gap: var(--az-card-chip-gap);
}
.az-card-chips.has-carousel .az-card-chips-track {
  animation: az-env-carousel var(--az-env-carousel-duration, 16s) linear infinite;
}
.az-card-chips .qc-chip {
  flex: 0 0 auto;
  white-space: nowrap;
  transition: none;
}
@keyframes az-env-carousel {
  to {
    transform: translateX(calc(-50% - (var(--az-card-chip-gap) / 2)));
  }
}
@media (prefers-reduced-motion: reduce) {
  .az-card-chips.has-carousel .az-card-chips-track {
    animation: none;
  }
}
.az-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.az-card-category-summary {
  display: grid;
  gap: 3px;
  padding-top: 2px;
}
.az-card-category-summary span {
  color: var(--text-soft);
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.az-card-category-summary strong {
  color: var(--text);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.3;
}
.az-card-tag {
  min-height: 26px;
  padding: 0 9px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text-muted);
  font: inherit;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
}
.az-grid.is-description-hidden .az-card-desc,
.az-grid.is-environments-hidden .az-card-envcount,
.az-grid.is-environments-hidden .az-card-chips,
.az-grid.is-categories-hidden .az-card-category-summary,
.az-grid.is-categories-hidden .az-card-tags {
  display: none;
}
.az-grid.is-compact {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.az-grid.is-compact .az-card {
  gap: 10px;
  padding: 18px;
  border-radius: 14px;
}
.az-grid.is-compact .az-card-head h4 {
  font-size: 17px;
}
.az-grid.is-compact .az-card-desc {
  -webkit-line-clamp: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.az-empty {
  grid-column: 1 / -1;
  display: grid;
  gap: 4px;
  padding: 34px;
  border: 1px dashed var(--border-strong);
  border-radius: 16px;
  background: var(--surface);
  color: var(--text-muted);
}
.az-empty strong {
  color: var(--text);
  font-size: 17px;
}

/* === New company guided flow === */
.company-wizard-panel {
  width: min(1120px, calc(100vw - 56px));
  max-height: min(860px, calc(100vh - 52px));
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 26px 80px rgba(18, 18, 24, .18);
  overflow: hidden;
}

.company-wizard-head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 28px;
  padding: 28px 30px 24px;
  border-bottom: 1px solid var(--border);
}

.company-wizard-title {
  display: flex;
  gap: 18px;
  align-items: start;
}

.company-wizard-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  color: #fff;
  background: #18181b;
  border-radius: 15px;
  box-shadow: 0 12px 22px rgba(24, 24, 27, .14);
}

.company-wizard-icon svg {
  width: 24px;
  height: 24px;
}

.company-wizard-title h2 {
  margin: 4px 0 6px;
  color: var(--text);
  font-size: 29px;
  letter-spacing: -.035em;
}

.company-wizard-title p {
  max-width: 560px;
  margin: 0;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.5;
}

.company-wizard-close {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  height: 46px;
  padding: 0 16px 0 20px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}

.company-wizard-close:hover {
  background: var(--surface-2);
  border-color: var(--border-strong);
}

.company-wizard-close svg {
  width: 18px;
  height: 18px;
}

.company-wizard-steps {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 16px 30px;
  list-style: none;
  background: #fbfbfc;
  border-bottom: 1px solid var(--border);
}

.company-wizard-steps li {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  color: var(--text-soft);
  font-size: 13px;
  font-weight: 600;
}

.company-wizard-steps li:not(:last-child)::after {
  content: "";
  height: 1px;
  flex: 1;
  margin: 0 22px;
  background: var(--border);
}

.company-wizard-steps strong {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--text-muted);
  font-size: 11px;
}

.company-wizard-steps .is-active {
  color: var(--text);
}

.company-wizard-steps .is-active strong,
.company-wizard-steps .is-complete strong {
  color: #fff;
  border-color: #18181b;
  background: #18181b;
}

.company-wizard-steps .is-complete::after {
  background: #18181b;
}

.company-wizard-form {
  min-height: 0;
  overflow-y: auto;
}

.company-wizard-page {
  display: none;
  padding: 28px 34px 32px;
}

.company-wizard-page.is-active {
  display: block;
}

.company-wizard-page-head {
  margin-bottom: 25px;
}

.company-wizard-page-head h3 {
  margin: 6px 0 7px;
  color: var(--text);
  font-size: 23px;
  letter-spacing: -.025em;
}

.company-wizard-page-head p {
  margin: 0;
  max-width: 670px;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.5;
}

.company-wizard-fields.identity {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.company-wizard-fields label,
.company-custom-environment label,
.company-initial-rules label {
  display: grid;
  gap: 8px;
  color: var(--text-muted);
  font-size: 12.5px;
  font-weight: 600;
}

.company-wizard-fields label > span small {
  margin-left: 5px;
  color: var(--text-soft);
  font-weight: 500;
}

.company-wizard-fields input,
.company-wizard-fields textarea,
.company-custom-environment input,
.company-rule-input {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 14px;
}

.company-wizard-fields input,
.company-custom-environment input {
  height: 52px;
  padding: 0 16px;
}

.company-wizard-fields textarea {
  min-height: 126px;
  padding: 14px 16px;
  resize: vertical;
  line-height: 1.55;
}

.company-wizard-fields input:focus,
.company-wizard-fields textarea:focus,
.company-custom-environment input:focus,
.company-rule-input:focus-within {
  outline: 2px solid rgba(24, 24, 27, .13);
  border-color: #18181b;
}

.company-web-action {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 16px;
  border: 1px solid #e9e2d8;
  border-radius: 13px;
  background: #fcfaf7;
}

.company-research-button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  color: #fff;
  background: #18181b;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
}

.company-research-button:disabled {
  opacity: .55;
  cursor: progress;
}

.company-research-button svg {
  width: 16px;
  height: 16px;
}

.company-web-action p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
}

.company-description-field {
  grid-column: 1 / -1;
}

.company-research-result {
  display: flex;
  gap: 14px;
  align-items: start;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-2);
}

.company-research-result.is-hidden {
  display: none;
}

.company-research-result svg {
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  margin-top: 2px;
}

.company-research-result strong,
.company-research-result p,
.company-research-result span,
.company-research-result a {
  display: block;
}

.company-research-result p {
  margin: 4px 0 5px;
  color: var(--text-muted);
  font-size: 13px;
}

.company-research-result a,
.company-research-result span {
  color: var(--text-muted);
  font-size: 12px;
}

.company-research-result.is-success {
  border-color: #d8eadf;
  background: #f4faf6;
  color: #1f7a44;
}

.company-research-result.is-error {
  border-color: #f0d3d6;
  background: #fff7f7;
  color: #a12f38;
}

.company-research-result.is-loading svg {
  animation: company-wizard-spin .8s linear infinite;
}

@keyframes company-wizard-spin {
  to { transform: rotate(360deg); }
}

.company-env-selector {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.company-env-option {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 62px;
  padding: 0 15px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  color: var(--text-muted);
  font: inherit;
  font-size: 14px;
  font-weight: 550;
  cursor: pointer;
  transition: border-color .14s ease, background .14s ease, color .14s ease;
}

.company-env-option > svg:first-child {
  width: 19px;
  height: 19px;
}

.company-env-option .company-env-check {
  width: 16px;
  height: 16px;
  margin-left: auto;
}

.company-env-option:hover,
.company-env-option.is-selected {
  color: var(--text);
  border-color: #18181b;
}

.company-env-option.is-selected {
  background: #f7f7f8;
}

.company-custom-environment {
  display: flex;
  align-items: end;
  gap: 12px;
  max-width: 500px;
  margin-top: 22px;
}

.company-custom-environment label {
  flex: 1;
}

.company-custom-environment button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 52px;
  padding: 0 17px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.company-custom-environment button svg {
  width: 15px;
  height: 15px;
}

.company-wizard-review {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(370px, 1.1fr);
  gap: 20px;
}

.company-wizard-summary {
  display: grid;
  align-content: start;
  gap: 17px;
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: #fbfbfc;
}

.company-wizard-summary header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.company-wizard-summary h4 {
  margin: 4px 0 0;
  font-size: 19px;
}

.company-wizard-summary p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.52;
}

.company-summary-envs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.company-summary-envs span {
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--text);
  font-size: 11.5px;
  font-weight: 600;
}

.company-wizard-summary small {
  color: var(--text-muted);
  font-size: 12px;
}

.company-wizard-summary a {
  color: inherit;
  font-weight: 600;
}

.company-initial-rules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.company-initial-rules label {
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #fff;
}

.company-rule-input {
  display: flex;
  align-items: center;
  height: 54px;
  padding: 0 13px;
}

.company-rule-input input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  font: inherit;
  color: var(--text);
  font-size: 20px;
  font-weight: 600;
}

.company-rule-input select {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}

.company-rule-input em {
  color: var(--text-muted);
  font-style: normal;
  font-size: 16px;
}

.company-rule-select small,
.company-rule-toggle small {
  display: block;
  margin-top: 8px;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.4;
}

.company-rule-select .company-rule-input {
  margin-top: 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #f7f7f8;
}

.company-rule-toggle {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.company-rule-toggle strong {
  display: block;
  color: var(--text);
  font-size: 14px;
}

.company-rule-toggle input {
  appearance: none;
  position: relative;
  flex: 0 0 auto;
  width: 52px;
  height: 30px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #e9e9ec;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease;
}

.company-rule-toggle input::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.18);
  transition: transform .18s ease;
}

.company-rule-toggle input:checked {
  border-color: var(--text);
  background: var(--text);
}

.company-rule-toggle input:checked::after {
  transform: translateX(22px);
}

.company-transport-override-fields {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fafafa;
}

.company-transport-override-fields.is-hidden {
  display: none;
}

.company-transport-override-fields label {
  background: #fff;
}

.company-wizard-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 18px 30px;
  border-top: 1px solid var(--border);
  background: #fff;
}

.company-wizard-actions {
  display: flex;
  gap: 10px;
  margin-left: auto;
}

.company-wizard-back,
.company-wizard-cancel,
.company-wizard-next,
.company-wizard-save {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 11px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
}

.company-wizard-next,
.company-wizard-save {
  color: #fff;
  border-color: #18181b;
  background: #18181b;
}

.company-wizard-back svg,
.company-wizard-next svg,
.company-wizard-save svg {
  width: 16px;
  height: 16px;
}

.company-wizard-back.is-hidden,
.company-wizard-next.is-hidden,
.company-wizard-save.is-hidden {
  display: none;
}

@media (max-width: 900px) {
  .company-wizard-panel {
    width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
  }
  .company-wizard-head,
  .company-wizard-page,
  .company-wizard-foot {
    padding-left: 20px;
    padding-right: 20px;
  }
  .company-wizard-steps {
    padding-left: 20px;
    padding-right: 20px;
  }
  .company-wizard-steps li span {
    display: none;
  }
  .company-wizard-fields.identity,
  .company-wizard-review {
    grid-template-columns: 1fr;
  }
  .company-env-selector {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* === Card ambiente (modal Scegli ambiente) === */
.quote-room-choice {
  display: grid;
  position: relative;
  grid-template-columns: 34px minmax(0, 1fr) 22px;
  grid-template-rows: auto;
  align-items: center;
  gap: 15px;
  min-height: 92px;
  padding: 17px 18px;
  overflow: hidden;
  border-color: rgba(24, 24, 27, .09);
  border-radius: 14px;
  background: #fff;
  box-shadow: none;
}

.quote-room-choice::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 3px solid transparent;
  pointer-events: none;
}

.quote-room-choice .qr-icon {
  grid-column: 1;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #18181b;
  box-shadow: none;
  transition: color .14s ease;
}

.quote-room-choice .qr-icon svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.65;
}

.quote-room-choice .qr-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.quote-room-choice .qr-kicker {
  color: #a1a1aa;
  font-size: 10px;
  font-weight: 780;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.quote-room-choice strong {
  color: var(--text);
  font-size: 19px;
  line-height: 1.16;
  font-weight: 680;
  letter-spacing: 0;
  text-transform: none;
}

.quote-room-choice .qr-copy em {
  color: #777780;
  font-size: 11.5px;
  font-style: normal;
  font-weight: 620;
  letter-spacing: 0;
  line-height: 1.25;
}

.quote-room-choice .qr-arrow {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #9a9aa2;
}

.quote-room-choice .qr-arrow svg {
  width: 17px;
  height: 17px;
  stroke-width: 1.85;
}

.quote-room-choice .qr-meta {
  display: none;
}

.quote-room-choice .qr-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--text);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 3px 9px;
  line-height: 1;
}
.quote-room-choice .qr-meta svg {
  width: 11px;
  height: 11px;
  color: var(--text-muted);
  stroke-width: 1.8;
}

.quote-room-choice:hover {
  border-color: rgba(24, 24, 27, .18);
  background: #fff;
  box-shadow: none;
  transform: none;
}

.quote-room-choice.is-selected .qr-icon {
  background: transparent;
  border-color: transparent;
  color: #18181b;
  box-shadow: none;
}

.quote-room-choice.is-selected {
  border-color: rgba(24, 24, 27, .24);
  background: #fff;
  box-shadow: none;
}

.quote-room-choice.is-selected::before {
  border-top-color: transparent;
}
.quote-rule-room-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  grid-auto-rows: 1fr;
}


/* ============================================================
   Company Detail Modal — Editorial monochrome, no-scroll
   ============================================================ */

/* az-card clickable affordance */
.az-card { cursor: pointer; transition: none; position: relative; }
.az-card:focus-visible { outline: 2px solid #18181b; outline-offset: 2px; }
.az-card-arrow {
  margin-left: auto;
  width: 18px; height: 18px;
  color: #71717a;
  opacity: 0;
  transform: translate(-4px, 4px);
  transition: none;
}

/* CD design tokens (scoped) */
.cd-panel {
  --cd-ink:        #0b0b0d;
  --cd-graphite:   #18181b;
  --cd-paper:      #ffffff;
  --cd-paper-2:    #f6f6f7;
  --cd-rule:       #ececee;
  --cd-rule-soft:  #f1f1f3;
  --cd-muted:      #6e6e76;
  --cd-soft:       #a0a0a8;
  --cd-amber:      #b88a3e;
  --cd-amber-soft: rgba(184,138,62,.12);

  position: relative;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: var(--cd-paper);
  border: 1px solid var(--cd-rule);
  border-radius: 18px;
  box-shadow: 0 30px 80px rgba(10,12,20,.2), 0 2px 6px rgba(0,0,0,.04);
  overflow: hidden;
  font-feature-settings: "tnum" 1, "ss01" 1;
  isolation: isolate;
}

/* hairline accent rail on top */
.cd-rail {
  position: absolute; left: 0; right: 0; top: 0;
  height: 3px;
  background:
    linear-gradient(90deg, var(--cd-graphite) 0%, var(--cd-graphite) 56%, var(--cd-amber) 56%, var(--cd-amber) 64%, var(--cd-graphite) 64%, var(--cd-graphite) 100%);
  z-index: 2;
}

/* ===== HEADER ===== */
.cd-head {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto auto;
  align-items: center;
  gap: 28px;
  padding: 22px 20px 18px 32px;
  border-bottom: 1px solid var(--cd-rule);
  background: linear-gradient(180deg, #fcfcfd 0%, #ffffff 100%);
}
.cd-close { justify-self: end; margin-left: 8px; }
.cd-head-left { display: flex; gap: 16px; align-items: center; min-width: 0; }
.cd-brand {
  width: 52px; height: 52px;
  border-radius: 14px;
  display: grid; place-items: center;
  background: var(--cd-graphite);
  color: #fff;
  font-weight: 700;
  font-size: 17px;
  letter-spacing: .04em;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -8px 16px rgba(0,0,0,.25),
    0 8px 20px rgba(24,24,27,.22);
  flex: 0 0 auto;
  position: relative;
}
.cd-brand::after {
  content: ""; position: absolute; inset: auto -3px -3px auto;
  width: 10px; height: 10px;
  background: var(--cd-amber);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(184,138,62,.6);
}
.cd-titles { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cd-kicker {
  font-size: 10.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cd-muted);
  font-weight: 600;
}
.cd-titles h3 {
  margin: 0;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -.022em;
  color: var(--cd-ink);
  line-height: 1.1;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ===== ENV TABS — segmented control ===== */
.cd-tabs {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  width: auto;
  background: var(--cd-paper-2);
  border: 1px solid var(--cd-rule);
  border-radius: 12px;
  padding: 5px;
  gap: 4px;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.cd-tabs::-webkit-scrollbar { display: none; }
.cd-tabs.is-hidden { display: none; }
.cd-tab {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  flex: 0 0 auto;
  min-width: max-content;
  min-height: 38px;
  padding: 9px 15px;
  border-radius: 9px;
  border: 0;
  background: transparent;
  color: var(--cd-muted);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  transition: color .15s ease, background .15s ease, box-shadow .15s ease;
  font-family: inherit;
}
.cd-tab :is(i, svg) {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  stroke-width: 2;
}
.cd-tab span {
  display: block;
  min-width: 0;
}
.cd-tab:hover { color: var(--cd-ink); }
.cd-tab.is-active {
  background: var(--cd-paper);
  color: var(--cd-ink);
  box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 2px 8px rgba(0,0,0,.06);
}

.cd-close {
  width: 38px; height: 38px;
  border-radius: 11px;
  border: 1px solid var(--cd-rule);
  background: #fff;
  display: grid; place-items: center;
  cursor: pointer;
  color: var(--cd-muted);
  transition: all .15s ease;
}
.cd-close:hover { background: var(--cd-graphite); color: #fff; border-color: var(--cd-graphite); transform: rotate(90deg); }

/* ===== BODY ===== */
.cd-body {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
}
.cd-col {
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.cd-col-config {
  padding: 22px 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  background:
    linear-gradient(#fff, #fff),
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(0,0,0,.02) 39px 40px);
  background-blend-mode: normal;
  position: relative;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}
.cd-col-config.is-listino-view {
  overflow-y: auto;
  overflow-x: hidden;
}
.cd-col-config::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; right: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent, var(--cd-rule) 12%, var(--cd-rule) 88%, transparent);
}

.cd-block {
  display: flex; flex-direction: column;
  min-height: 0;
  gap: 10px;
}
.cd-block-discounts {
  flex: 0 0 auto;
}
.cd-block-fiscal {
  flex: 0 0 auto;
}
.cd-block-fiscal.is-hidden {
  display: none;
}
.cd-block-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  min-height: 36px;
}
.cd-block-title {
  display: flex; align-items: center; gap: 12px;
  min-width: 0;
}
.cd-block-letter {
  width: 26px; height: 26px;
  border-radius: 8px;
  background: var(--cd-graphite);
  color: #fff;
  display: grid; place-items: center;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  flex: 0 0 auto;
  letter-spacing: .02em;
}
.cd-block-title h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--cd-ink);
  letter-spacing: -.01em;
  line-height: 1.2;
}
.cd-block-meta {
  margin: 2px 0 0;
  font-size: 11.5px;
  color: var(--cd-muted);
  line-height: 1.3;
}
.cd-block-stat {
  display: inline-flex; align-items: baseline; gap: 10px;
  padding: 6px 12px;
  border-radius: 9px;
  background: var(--cd-paper-2);
  border: 1px solid var(--cd-rule);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.cd-stat-num {
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--cd-ink);
  letter-spacing: -.015em;
  line-height: 1;
}
.cd-stat-meta {
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--cd-soft);
  font-weight: 600;
}

/* Sheet */
.cd-sheet {
  border: 1px solid var(--cd-rule);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  flex: 0 0 auto;
  display: flex; flex-direction: column;
}
.cd-sheet-head,
.cd-sheet-row {
  display: grid;
  grid-template-columns: 48px 1fr 160px;
  align-items: center;
}
.cd-sheet-head {
  background: var(--cd-paper-2);
  border-bottom: 1px solid var(--cd-rule);
  padding: 8px 18px;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cd-muted);
  font-weight: 700;
  flex: 0 0 auto;
}
.cd-sheet-head .num { text-align: right; }
.cd-sheet-rows { display: flex; flex-direction: column; flex: 0 0 auto; }
.cd-sheet-row {
  flex: 0 0 auto;
  min-height: 0;
  padding: 9px 18px;
  border-bottom: 1px solid var(--cd-rule-soft);
  transition: background .12s ease;
  position: relative;
  align-items: center;
}
.cd-sheet-row:last-child { border-bottom: 0; }
.cd-sheet-row:hover { background: var(--cd-paper-2); }
.cd-sheet-row.is-active::before {
  content: "";
  position: absolute; inset: 8px auto 8px 0;
  width: 3px;
  background: var(--cd-amber);
  border-radius: 3px;
}
.cd-sheet-idx {
  font-family: inherit;
  font-size: 11px;
  color: var(--cd-soft);
  font-weight: 600;
  letter-spacing: .04em;
}
.cd-sheet-row.is-active .cd-sheet-idx { color: var(--cd-amber); }
.cd-sheet-lbl {
  font-size: 14px;
  color: var(--cd-ink);
  font-weight: 500;
}
.cd-sheet-input {
  display: inline-flex; align-items: center; gap: 4px;
  justify-self: end;
  align-self: center;
  border: 1px solid var(--cd-rule);
  border-radius: 10px;
  padding: 5px 12px;
  margin: 0;
  background: #fff;
  transition: border-color .12s ease, box-shadow .12s ease;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.cd-sheet-input:focus-within {
  border-color: var(--cd-rule);
}
.cd-sheet-row.is-active .cd-sheet-input {
  border-color: var(--cd-rule);
}
.cd-sheet-row.is-active .cd-sheet-input:focus-within {
  border-color: var(--cd-rule);
}
.cd-sheet-input input:focus { outline: none; box-shadow: none; }
.cd-sheet-input input {
  width: 70px;
  border: 0; outline: 0;
  background: transparent;
  text-align: right;
  font-size: 15px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-family: inherit;
  color: var(--cd-ink);
}
.cd-sheet-input input::-webkit-outer-spin-button,
.cd-sheet-input input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cd-pct {
  font-size: 12px;
  color: var(--cd-muted);
  font-weight: 600;
}

/* Fiscal grid: IVA + Ricarico bigfields */
.cd-fiscal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.cd-bigfield {
  position: relative;
  display: flex; flex-direction: row; align-items: center; justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid var(--cd-rule);
  border-radius: 12px;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
  overflow: hidden;
  min-height: 56px;
}
.cd-bigfield:hover { border-color: var(--cd-rule); }
.cd-bigfield-accent {
  border-color: rgba(184,138,62,.25);
}
.cd-bigfield-lbl {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cd-muted);
  font-weight: 700;
}
.cd-bigfield-wrap {
  display: inline-flex; align-items: baseline; gap: 4px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--cd-paper-2);
  border: 1px solid var(--cd-rule);
  transition: all .12s ease;
}
.cd-bigfield:focus-within .cd-bigfield-wrap {
  border-color: var(--cd-rule);
}
.cd-bigfield-accent:focus-within .cd-bigfield-wrap {
  border-color: var(--cd-rule);
}
.cd-bigfield-wrap input:focus { outline: none; box-shadow: none; }
.cd-bigfield-wrap input {
  width: 70px; min-width: 0;
  border: 0; outline: 0; background: transparent;
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-family: inherit;
  color: var(--cd-ink);
  letter-spacing: -.01em;
  padding: 0;
  text-align: right;
}
.cd-bigfield-wrap input::-webkit-outer-spin-button,
.cd-bigfield-wrap input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cd-bigfield-suffix {
  font-size: 13px;
  font-weight: 600;
  color: var(--cd-soft);
  font-family: inherit;
}
.cd-bigfield.is-disabled {
  opacity: .58;
  background: var(--cd-paper-2);
}
.cd-bigfield.is-disabled .cd-bigfield-wrap {
  background: #fff;
}
.cd-variable-markup {
  display: grid;
  gap: 12px;
  margin-top: 4px;
  padding: 14px 16px;
  border: 1px solid var(--cd-rule);
  border-radius: 14px;
  background: var(--cd-paper-2);
}
.cd-variable-markup-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.cd-variable-markup-head strong {
  display: block;
  color: var(--cd-ink);
  font-size: 13.5px;
  font-weight: 700;
}
.cd-variable-markup-head p {
  margin: 4px 0 0;
  color: var(--cd-muted);
  font-size: 11.5px;
  line-height: 1.35;
}
.cd-switch {
  flex: 0 0 auto;
  position: relative;
  width: 46px;
  height: 27px;
  cursor: pointer;
}
.cd-switch input {
  position: absolute;
  opacity: 0;
}
.cd-switch span {
  position: absolute;
  inset: 0;
  border-radius: 18px;
  background: #dedfe3;
  transition: background .16s ease;
}
.cd-switch span::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.12);
  content: "";
  transition: transform .16s ease;
}
.cd-switch input:checked + span {
  background: var(--cd-graphite);
}
.cd-switch input:checked + span::after {
  transform: translateX(19px);
}
.cd-switch input:focus-visible + span {
  outline: 2px solid var(--cd-amber);
  outline-offset: 2px;
}
.cd-variable-tiers {
  display: grid;
  gap: 7px;
  padding-top: 12px;
  border-top: 1px solid var(--cd-rule);
}
.cd-variable-tiers.is-hidden {
  display: none;
}
.cd-tier-row {
  display: grid;
  grid-template-columns: minmax(130px, 1fr) 126px 88px;
  gap: 8px;
  align-items: center;
}
.cd-tier-row > span {
  color: var(--cd-muted);
  font-size: 12px;
  font-weight: 500;
}
.cd-tier-row > span strong {
  color: var(--cd-ink);
  font-variant-numeric: tabular-nums;
}
.cd-tier-row label {
  display: flex;
  align-items: baseline;
  gap: 4px;
  min-height: 38px;
  padding: 8px 9px;
  border: 1px solid var(--cd-rule);
  border-radius: 9px;
  background: #fff;
  transition: background .12s ease;
}
.cd-tier-row input {
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--cd-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  text-align: right;
  box-shadow: none;
  appearance: textfield;
}
.cd-tier-row input::-webkit-outer-spin-button,
.cd-tier-row input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.cd-tier-row label:hover,
.cd-tier-row label:focus-within {
  border-color: var(--cd-rule);
  background: #f3f3f4;
  box-shadow: none;
}
.cd-tier-row input:focus {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  outline: 0;
}
.cd-tier-row em {
  color: var(--cd-muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 600;
}
.cd-tier-last {
  grid-template-columns: minmax(130px, 1fr) 88px;
}

/* ===== PREVIEW (dark editorial) ===== */
.cd-col-preview {
  background: var(--cd-graphite);
  color: #fafafa;
  padding: 28px 32px;
  position: relative;
  display: flex; flex-direction: column;
  gap: 18px;
  margin: 16px 16px 16px 0;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(10,12,20,.18);
}
.cd-preview-grain {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(ellipse at top right, rgba(184,138,62,.10), transparent 55%),
    radial-gradient(ellipse at bottom left, rgba(255,255,255,.03), transparent 60%);
  pointer-events: none;
}
.cd-col-preview > * { position: relative; z-index: 1; }

.cd-preview-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.cd-preview-kicker {
  display: block;
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(250,250,250,.55);
  font-weight: 700;
}
.cd-preview-test {
  display: flex; align-items: center; justify-content: flex-end; gap: 10px;
}
.cd-preview-test-wrap {
  display: inline-flex; align-items: baseline; gap: 4px;
  padding: 6px 12px;
  border-radius: 10px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  transition: all .15s ease;
}
.cd-preview-test-wrap:focus-within {
  border-color: rgba(255,255,255,.12);
}
.cd-preview-test-wrap input:focus { outline: none; box-shadow: none; }
.cd-preview-test-wrap input {
  width: 80px;
  border: 0; outline: 0; background: transparent;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  font-family: inherit;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.cd-preview-test-wrap input::-webkit-outer-spin-button,
.cd-preview-test-wrap input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cd-preview-test-wrap > span {
  color: rgba(250,250,250,.5);
  font-family: inherit;
}

.cd-flow {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column;
  flex: 1; min-height: 0;
  overflow: hidden;
}
.cd-flow-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(255,255,255,.08);
  position: relative;
  flex: 1;
  min-height: 0;
}
.cd-flow-step:last-child { border-bottom: 0; }
.cd-flow-label {
  font-size: 13px;
  color: rgba(250,250,250,.72);
  letter-spacing: -.005em;
  display: flex; align-items: center; gap: 8px;
}
.cd-flow-label::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  flex: 0 0 6px;
}
.cd-flow-discount .cd-flow-label::before { background: #86efac; }
.cd-flow-vat .cd-flow-label::before { background: #fcd34d; }
.cd-flow-markup .cd-flow-label::before { background: var(--cd-amber); }
.cd-flow-start .cd-flow-label::before { background: #fff; }

.cd-flow-value {
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.cd-flow-muted { opacity: .55; }
.cd-flow-start .cd-flow-label { font-weight: 600; color: #fff; }

.cd-final {
  padding: 18px 20px;
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(184,138,62,.18) 0%, rgba(255,255,255,.06) 50%, rgba(255,255,255,.02) 100%);
  border: 1px solid rgba(255,255,255,.12);
  position: relative;
  overflow: hidden;
}
.cd-final::before {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--cd-amber);
}
.cd-final-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 3px 0;
  font-variant-numeric: tabular-nums;
}
.cd-final-row:first-child { padding-bottom: 8px; }
.cd-final-row strong {
  font-size: 28px;
  font-family: inherit;
  font-weight: 800;
  letter-spacing: -.02em;
  color: #fff;
}
.cd-final-row span:first-child {
  font-size: 11px;
  color: rgba(250,250,250,.7);
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
}
.cd-final-rule {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed rgba(255,255,255,.12);
  color: var(--cd-amber);
  font-size: 11px;
  font-weight: 600;
}
.cd-final-muted span:last-child {
  font-family: inherit;
  color: rgba(250,250,250,.55);
  font-size: 13px;
  font-weight: 500;
}
.cd-final-muted span:first-child { color: rgba(250,250,250,.45); text-transform: none; letter-spacing: 0; font-size: 12px; font-weight: 400; }

.cd-final-net {
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px dashed rgba(255,255,255,.15);
  align-items: baseline;
}
.cd-final-net > span:first-child {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cd-amber);
  font-weight: 700;
}
.cd-final-net-val {
  display: inline-flex; align-items: baseline; gap: 10px;
}
.cd-final-net-val strong {
  font-family: inherit;
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.01em;
  font-variant-numeric: tabular-nums;
}
.cd-final-net-val em {
  font-style: normal;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  color: var(--cd-amber);
  background: rgba(184,138,62,.16);
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: -.005em;
}

/* ===== FOOTER ===== */
.cd-foot {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px;
  padding: 14px 32px;
  border-top: 1px solid var(--cd-rule);
  background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
}
.cd-foot-left { display: flex; align-items: center; gap: 14px; }
.cd-foot-hint {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cd-soft);
  font-weight: 600;
  font-family: inherit;
}
.cd-foot-right { display: flex; gap: 10px; }
.cd-btn {
  padding: 10px 18px;
  border-radius: 11px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: none;
  font-family: inherit;
  display: inline-flex; align-items: center; gap: 8px;
}
.cd-btn i { width: 16px; height: 16px; }
.cd-btn-ghost {
  background: transparent;
  color: var(--cd-muted);
  border-color: transparent;
}
.cd-btn-secondary {
  background: #fff;
  color: var(--cd-ink);
  border-color: var(--cd-rule);
}
.cd-btn-primary {
  background: var(--cd-graphite);
  color: #fff;
  border-color: var(--cd-graphite);
  box-shadow: 0 4px 14px rgba(24,24,27,.22);
  position: relative;
  overflow: hidden;
}
.cd-btn-primary::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 0%, transparent 40%, rgba(255,255,255,.08) 50%, transparent 60%, transparent 100%);
  transform: translateX(-100%);
  transition: transform .6s ease;
}
.cd-btn-primary:hover { background: #000; }
.cd-btn-primary:hover::after { transform: translateX(100%); }

.cd-settings-panel {
  position: absolute;
  right: 30px;
  bottom: 82px;
  z-index: 8;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(486px, calc(100vw - 64px));
  max-height: min(660px, calc(100vh - 184px));
  overflow: hidden;
  border: 1px solid rgba(24, 24, 27, .11);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(10, 12, 20, .20), 0 8px 24px rgba(10, 12, 20, .08), 0 1px 0 rgba(255, 255, 255, .85) inset;
  animation: cd-settings-enter .16s ease-out both;
}

.cd-settings-panel::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--cd-graphite), var(--cd-graphite) 72%, var(--cd-amber));
  pointer-events: none;
}

@keyframes cd-settings-enter {
  from {
    opacity: 0;
    transform: translateY(10px) scale(.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.cd-settings-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 20px 18px;
  border-bottom: 1px solid var(--cd-rule);
  background: linear-gradient(180deg, #fff 0%, #fbfbfc 100%);
}

.cd-settings-title {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  min-width: 0;
}

.cd-settings-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 10px;
  background: var(--cd-graphite);
  color: #fff;
  box-shadow: 0 10px 20px rgba(24, 24, 27, .16);
}

.cd-settings-icon svg {
  width: 17px;
  height: 17px;
}

.cd-settings-title > div > span,
.cd-settings-field > span,
.cd-settings-section-head span {
  display: block;
  color: var(--cd-muted);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.cd-settings-head strong {
  display: block;
  margin-top: 4px;
  color: var(--cd-ink);
  font-size: 18px;
  font-weight: 750;
  line-height: 1.2;
}

.cd-settings-head p {
  margin: 5px 0 0;
  color: var(--cd-muted);
  font-size: 12.5px;
  line-height: 1.45;
}

.cd-settings-head button {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(24, 24, 27, .09);
  border-radius: 10px;
  background: #fff;
  color: var(--cd-muted);
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(10, 12, 20, .04);
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.cd-settings-head button:hover {
  border-color: var(--cd-graphite);
  background: var(--cd-paper-2);
  color: var(--cd-ink);
}

.cd-settings-head svg {
  width: 16px;
  height: 16px;
}

.cd-settings-body {
  display: grid;
  gap: 12px;
  min-height: 0;
  padding: 14px 14px 18px;
  overflow-y: auto;
  background: #fff;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.cd-settings-body::-webkit-scrollbar {
  display: none;
}

.cd-settings-section {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--cd-rule);
  border-radius: 14px;
  background: #fff;
}

.cd-settings-section-head {
  display: grid;
  gap: 4px;
}

.cd-settings-section-head small {
  display: block;
  color: var(--cd-muted);
  font-size: 12px;
  line-height: 1.35;
}

.cd-settings-field {
  display: grid;
  gap: 8px;
}

.cd-settings-field input,
.cd-settings-field textarea,
.cd-settings-env-row input,
.cd-settings-add-env input {
  width: 100%;
  border: 1px solid rgba(24, 24, 27, .10);
  border-radius: 11px;
  background: #fff;
  color: var(--cd-ink);
  font: inherit;
  font-size: 13.5px;
  font-weight: 650;
  line-height: 1.3;
  outline: none;
  box-shadow: 0 1px 0 rgba(10, 12, 20, .02);
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.cd-settings-field input,
.cd-settings-env-row input,
.cd-settings-add-env input {
  min-height: 44px;
  padding: 10px 13px;
}

.cd-settings-field textarea {
  resize: vertical;
  min-height: 88px;
  padding: 12px 13px;
}

.cd-settings-field input:focus,
.cd-settings-field textarea:focus,
.cd-settings-env-row input:focus,
.cd-settings-add-env input:focus {
  border-color: var(--cd-graphite);
  box-shadow: 0 0 0 3px var(--cd-focus);
  background: #fff;
}

.cd-settings-envs {
  display: grid;
  gap: 12px;
  background: var(--cd-paper-2);
}

.cd-settings-env-list {
  display: grid;
  gap: 9px;
}

.cd-settings-env-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 36px;
  align-items: center;
  gap: 10px;
  padding: 9px;
  border: 1px solid rgba(24, 24, 27, .08);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(10, 12, 20, .025);
  transition: none;
}

.cd-settings-env-row > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: var(--cd-paper-2);
  color: var(--cd-muted);
  font-size: 11.5px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.cd-settings-env-row button {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--cd-soft);
  cursor: pointer;
  transition: none;
}

.cd-settings-env-row svg {
  width: 16px;
  height: 16px;
}

.cd-settings-add-env {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
  padding: 2px 0 1px;
}

.cd-settings-add-env button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid var(--cd-graphite);
  border-radius: 11px;
  background: var(--cd-graphite);
  color: #fff;
  font: inherit;
  font-size: 12.5px;
  font-weight: 760;
  cursor: pointer;
  box-shadow: none;
  transition: none;
}

.cd-settings-add-env svg {
  width: 15px;
  height: 15px;
}

/* ===== Responsive: keep no-scroll philosophy, stack only if very small ===== */
@media (max-width: 1100px) {
  .cd-head { grid-template-columns: 1fr auto; padding: 18px 22px 14px; }
  .cd-tabs { grid-column: 1 / -1; order: 3; }
  .cd-tabs.is-env-profile-tabs {
    justify-self: stretch;
    max-width: 100%;
  }
  .cd-tabs.is-env-profile-tabs .cd-tabs-profile-group {
    flex: 1 1 0;
  }
  .cd-col-config, .cd-col-preview { padding: 18px 22px; }
  .cd-bigfield-wrap input { font-size: 32px; }
}
@media (max-width: 820px) {
  .cd-body { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; overflow: auto; }
  .cd-col-config::before { display: none; }
  .cd-col-preview { border-top: 1px solid var(--cd-rule); }
  .cd-foot-hint { display: none; }
}

/* ============================================================
   Quote sheet — Excel-clean editable rows
   ============================================================ */
.quote-sheet {
  --qs-rule: #ececee;
  --qs-rule-soft: #f3f3f5;
  --qs-bg: #fff;
  --qs-head-bg: #f8f8f9;
  --qs-text: #18181b;
  --qs-muted: #6e6e76;
  --qs-soft: #a0a0a8;
  --qs-amber: #b88a3e;

  border: 1px solid var(--qs-rule);
  border-radius: 12px;
  overflow: hidden;
  background: var(--qs-bg);
  font-feature-settings: "tnum" 1;
}
.quote-sheet-head,
.quote-sheet-row {
  display: grid;
  grid-template-columns: 42px 110px minmax(220px, 1fr) 70px 140px 80px 130px 44px;
  align-items: center;
  gap: 0;
}
.quote-sheet-head {
  background: var(--qs-head-bg);
  border-bottom: 1px solid var(--qs-rule);
  padding: 10px 0;
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--qs-muted);
  font-weight: 700;
}
.quote-sheet-head > span {
  padding: 0 14px;
  border-right: 1px solid var(--qs-rule);
}
.quote-sheet-head > span:last-child { border-right: 0; }
.quote-sheet-row {
  border-bottom: 1px solid var(--qs-rule-soft);
  padding: 12px 0;
  min-height: 56px;
  transition: background .12s ease;
  position: relative;
}
.quote-sheet-row:last-child { border-bottom: 0; }
.quote-sheet-row:hover { background: #fbfbfc; }
.quote-sheet-row > span {
  padding: 0 14px;
  border-right: 1px solid var(--qs-rule-soft);
  display: flex; align-items: center;
  min-width: 0;
}
.quote-sheet-row > span:last-child { border-right: 0; }

.qs-c-idx {
  font-family: inherit;
  font-size: 11px;
  color: var(--qs-soft);
  font-weight: 600;
  letter-spacing: .04em;
  justify-content: center;
}
.qs-c-sku {
  font-family: inherit;
  font-size: 12px;
  color: var(--qs-text);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -.005em;
}
.qs-c-name {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  min-width: 0;
}
.qs-c-name strong {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--qs-text);
  letter-spacing: -.005em;
  line-height: 1.25;
}
.qs-c-name small {
  font-size: 11px;
  color: var(--qs-muted);
  letter-spacing: .01em;
}
.qs-preset-tag {
  display: inline-block;
  font-style: normal;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--qs-amber);
  background: rgba(184,138,62,.1);
  padding: 2px 7px;
  border-radius: 4px;
  margin-top: 4px;
}
.qs-c-num {
  font-family: inherit;
  font-variant-numeric: tabular-nums;
  font-size: 13.5px;
  color: var(--qs-text);
  font-weight: 600;
  justify-content: flex-end;
}
.qs-c-edit {
  gap: 4px;
}
.qs-c-edit input {
  width: 100%;
  border: 1px solid transparent;
  background: transparent;
  text-align: right;
  font: inherit;
  color: inherit;
  padding: 6px 8px;
  border-radius: 6px;
  outline: none;
  transition: background .12s ease, border-color .12s ease;
}
.qs-c-edit input::-webkit-outer-spin-button,
.qs-c-edit input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qs-c-edit input:hover { background: #f4f4f5; }
.qs-c-edit input:focus { background: #fff; border-color: var(--qs-rule); }
.qs-c-edit em {
  font-style: normal;
  color: var(--qs-soft);
  font-size: 12px;
  font-weight: 600;
}
.qs-c-total {
  font-size: 14px;
  font-weight: 800;
  color: var(--qs-text);
}
.qs-c-act { padding: 0; justify-content: center; }
.qs-btn-del {
  width: 30px; height: 30px;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 7px;
  color: var(--qs-soft);
  cursor: pointer;
  display: grid; place-items: center;
  transition: all .12s ease;
}
.qs-btn-del i { width: 14px; height: 14px; }
.qs-btn-del:hover {
  background: #fdebec;
  color: #9a1f2b;
}

.quote-sheet-row.is-preset {
  background: linear-gradient(90deg, rgba(184,138,62,.04) 0%, transparent 14%);
}
.quote-sheet-row.is-preset::before {
  content: "";
  position: absolute;
  left: 0; top: 10px; bottom: 10px;
  width: 3px;
  background: var(--qs-amber);
  border-radius: 3px;
}

@media (max-width: 980px) {
  .quote-sheet-head,
  .quote-sheet-row {
    grid-template-columns: 36px 90px minmax(180px, 1fr) 60px 120px 70px 110px 40px;
  }
}

/* ============================================================
   Quote Workspace — Minimal, clean, professional
   ============================================================ */
.qw {
  --qw-rule: #ececee;
  --qw-text: #18181b;
  --qw-muted: #6e6e76;
  --qw-soft: #a0a0a8;
  --qw-amber: #b88a3e;
  --qw-bg: #fff;

  display: flex; flex-direction: column;
  gap: 18px;
  max-width: 1240px;
  margin: 0 auto;
  width: 100%;
  font-feature-settings: "tnum" 1;
}

.qw-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px;
  padding: 22px 26px;
  background: #fff;
  border: 1px solid var(--qw-rule);
  border-radius: 16px;
}
.qw-head-id { display: flex; align-items: baseline; gap: 14px; flex: 0 0 auto; }
.qw-kicker {
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--qw-muted);
  font-weight: 700;
}
.qw-head-id h2 {
  margin: 0;
  font-family: inherit;
  font-size: 22px;
  font-weight: 700;
  color: var(--qw-text);
  letter-spacing: -.01em;
}
.qw-status {
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: #f4f4f5;
  color: var(--qw-text);
  border-radius: 6px;
}

.qw-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  flex: 1;
  max-width: 760px;
}
.qw-meta-item {
  display: flex; flex-direction: column; gap: 4px;
  min-width: 0;
}
.qw-meta-item label {
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--qw-soft);
  font-weight: 700;
}
.qw-meta-item strong {
  font-size: 14px;
  font-weight: 600;
  color: var(--qw-text);
  letter-spacing: -.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qw-body {
  display: flex; flex-direction: column;
  gap: 12px;
}

.qw-add {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  border: 1px dashed var(--qw-rule);
  border-radius: 10px;
  background: #fff;
  color: var(--qw-muted);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s ease;
  font-family: inherit;
}
.qw-add i { width: 14px; height: 14px; }
.qw-add:hover {
  border-color: var(--qw-text);
  color: var(--qw-text);
  background: #fafafa;
}

.qw-foot {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 32px;
  padding: 22px 26px;
  background: #fff;
  border: 1px solid var(--qw-rule);
  border-radius: 16px;
}
.qw-totals {
  display: flex; flex-direction: column;
  gap: 4px;
  min-width: 280px;
  flex: 1;
  max-width: 420px;
}
.qw-totals .total-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 4px 0;
  font-variant-numeric: tabular-nums;
}
.qw-totals .total-row span {
  font-size: 12px;
  color: var(--qw-muted);
  letter-spacing: -.005em;
}
.qw-totals .total-row strong {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--qw-text);
  letter-spacing: -.01em;
}
.qw-totals .total-row.grand {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--qw-rule);
}
.qw-totals .total-row.grand span {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--qw-text);
  font-weight: 700;
}
.qw-totals .total-row.grand strong {
  font-size: 22px;
  font-weight: 800;
}

.qw-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.qw-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px;
  border-radius: 11px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all .15s ease;
  font-family: inherit;
}
.qw-btn i { width: 16px; height: 16px; }
.qw-btn:active { transform: translateY(1px); }
.qw-btn-secondary {
  background: #fff;
  color: var(--qw-text);
  border-color: var(--qw-rule);
}
.qw-btn-secondary:hover { border-color: var(--qw-text); }
.qw-btn-primary {
  background: var(--qw-text);
  color: #fff;
  border-color: var(--qw-text);
  box-shadow: 0 4px 14px rgba(24,24,27,.22);
}
.qw-btn-primary:hover { background: #000; }

/* Inline editable text fields in sheet */
.qs-c-edit.qs-c-text input {
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  text-align: left;
  color: var(--qw-text);
}
.qs-c-sku.qs-c-edit input {
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
}
.qs-c-name.qs-c-edit { flex-direction: column; align-items: stretch; }
.qs-c-name.qs-c-edit input { width: 100%; }
.qs-c-name.qs-c-edit small {
  padding-left: 8px;
  font-size: 11px;
  color: var(--qw-muted);
}

@media (max-width: 1100px) {
  .qw-head { flex-direction: column; align-items: flex-start; gap: 18px; }
  .qw-meta { max-width: none; width: 100%; }
  .qw-foot { flex-direction: column; align-items: stretch; gap: 18px; }
  .qw-actions { justify-content: flex-end; }
}
@media (max-width: 680px) {
  .qw-meta { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   Quote Workspace v2 — Editorial pro, on-brand amber accent
   ============================================================ */

.qw {
  --qw-ink:       #0b0b0d;
  --qw-graphite:  #18181b;
  --qw-paper:     #ffffff;
  --qw-paper-2:   #f8f8f9;
  --qw-rule:      #ececee;
  --qw-rule-soft: #f3f3f5;
  --qw-muted:     #6e6e76;
  --qw-soft:      #a0a0a8;
  --qw-amber:     #b88a3e;
  --qw-amber-soft: rgba(184,138,62,.10);

  display: flex; flex-direction: column;
  gap: 16px;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
  font-feature-settings: "tnum" 1;
}

/* ---------- Header ---------- */
.qw-head {
  position: relative;
  padding: 28px 32px 24px;
  background: var(--qw-paper);
  border: 1px solid var(--qw-rule);
  border-radius: 18px;
  overflow: hidden;
  display: flex; flex-direction: column;
  gap: 22px;
  box-shadow: 0 1px 2px rgba(0,0,0,.02);
}
.qw-rail {
  position: absolute; left: 0; right: 0; top: 0;
  height: 3px;
  background:
    linear-gradient(90deg,
      var(--qw-graphite) 0%, var(--qw-graphite) 58%,
      var(--qw-amber) 58%, var(--qw-amber) 66%,
      var(--qw-graphite) 66%, var(--qw-graphite) 100%);
  z-index: 1;
}
.qw-head-top {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px;
}
.qw-head-id { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.qw-kicker {
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--qw-muted);
  font-weight: 700;
}
.qw-head-id h2 {
  margin: 0;
  font-family: inherit;
  font-size: 28px;
  font-weight: 700;
  color: var(--qw-ink);
  letter-spacing: -.02em;
  line-height: 1.1;
}
.qw-status {
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  background: var(--qw-paper-2);
  color: var(--qw-graphite);
  border: 1px solid var(--qw-rule);
  border-radius: 8px;
  font-family: inherit;
  flex: 0 0 auto;
}

.qw-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  padding-top: 18px;
  border-top: 1px dashed var(--qw-rule);
}
.qw-meta-item {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 4px 18px 4px 0;
  border-right: 1px solid var(--qw-rule-soft);
  min-width: 0;
}
.qw-meta-item + .qw-meta-item { padding-left: 18px; }
.qw-meta-item:last-child { border-right: 0; padding-right: 0; }
.qw-meta-ic {
  width: 32px; height: 32px;
  border-radius: 9px;
  background: var(--qw-paper-2);
  display: grid; place-items: center;
  flex: 0 0 32px;
  color: var(--qw-muted);
  border: 1px solid var(--qw-rule);
}
.qw-meta-ic i { width: 15px; height: 15px; }
.qw-meta-item > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.qw-meta-item label {
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--qw-soft);
  font-weight: 700;
}
.qw-meta-item strong {
  font-size: 14px;
  font-weight: 600;
  color: var(--qw-ink);
  letter-spacing: -.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

/* ---------- Body ---------- */
.qw-body {
  display: flex; flex-direction: column;
  gap: 12px;
  padding: 22px;
  background: var(--qw-paper);
  border: 1px solid var(--qw-rule);
  border-radius: 18px;
  position: relative;
  overflow: hidden;
}
.qw-body::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(0deg, transparent 0 47px, rgba(0,0,0,.015) 47px 48px);
  pointer-events: none;
  z-index: 0;
}
.qw-body > * { position: relative; z-index: 1; }

.qw-add {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  border: 1px dashed var(--qw-rule);
  border-radius: 10px;
  background: var(--qw-paper-2);
  color: var(--qw-muted);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s ease;
  font-family: inherit;
}
.qw-add i { width: 14px; height: 14px; }
.qw-add:hover {
  border-color: var(--qw-amber);
  color: var(--qw-amber);
  background: var(--qw-amber-soft);
}

/* ---------- Footer ---------- */
.qw-foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 420px);
  gap: 18px;
  padding: 24px 28px;
  background: var(--qw-paper);
  border: 1px solid var(--qw-rule);
  border-radius: 18px;
  align-items: stretch;
}

.qw-breakdown {
  display: flex; flex-direction: column; justify-content: center;
  gap: 4px;
  padding: 4px 12px 4px 0;
}
.qw-breakdown .total-row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 6px 0;
  font-variant-numeric: tabular-nums;
  border-bottom: 1px dashed var(--qw-rule-soft);
}
.qw-breakdown .total-row:last-child { border-bottom: 0; }
.qw-breakdown .total-row span {
  font-size: 12.5px;
  color: var(--qw-muted);
  letter-spacing: -.005em;
}
.qw-breakdown .total-row strong {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--qw-ink);
  letter-spacing: -.01em;
}

.qw-hero {
  display: flex; flex-direction: column;
  gap: 14px;
}
.qw-hero-card {
  position: relative;
  padding: 18px 22px;
  background: var(--qw-graphite);
  color: #fafafa;
  border-radius: 14px;
  overflow: hidden;
}
.qw-hero-card::before {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--qw-amber);
}
.qw-hero-card::after {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at top right, rgba(184,138,62,.15), transparent 60%);
  pointer-events: none;
}
.qw-hero-card > * { position: relative; z-index: 1; }
.qw-hero-kicker {
  display: block;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(250,250,250,.55);
  font-weight: 700;
}
.qw-hero-amount {
  display: block;
  margin-top: 4px;
  font-family: inherit;
  font-size: 32px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.025em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.qw-hero-sub {
  display: block;
  margin-top: 6px;
  font-size: 11.5px;
  color: rgba(250,250,250,.5);
  font-weight: 500;
}

.qw-actions { display: flex; gap: 10px; }
.qw-btn {
  flex: 1;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 18px;
  border-radius: 11px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all .15s ease;
  font-family: inherit;
}
.qw-btn i { width: 16px; height: 16px; }
.qw-btn:active { transform: translateY(1px); }
.qw-btn-secondary {
  background: var(--qw-paper);
  color: var(--qw-ink);
  border-color: var(--qw-rule);
  flex: 0 0 auto;
}
.qw-btn-secondary:hover { border-color: var(--qw-ink); background: var(--qw-paper-2); }
.qw-btn-primary {
  background: var(--qw-graphite);
  color: #fff;
  border-color: var(--qw-graphite);
  box-shadow: 0 6px 16px rgba(24,24,27,.22);
  position: relative;
  overflow: hidden;
}
.qw-btn-primary::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 0 40%, rgba(255,255,255,.08) 50%, transparent 60% 100%);
  transform: translateX(-100%);
  transition: transform .6s ease;
}
.qw-btn-primary:hover { background: #000; }
.qw-btn-primary:hover::after { transform: translateX(100%); }

/* ---------- Sheet column tighten (avoid header wrap) ---------- */
.quote-sheet-head,
.quote-sheet-row {
  grid-template-columns: 42px 110px minmax(220px, 1fr) 66px 124px 76px 132px 44px;
}
.quote-sheet-head > span {
  font-size: 10px;
  letter-spacing: .12em;
}
.quote-sheet {
  border-radius: 12px;
  border-color: var(--qw-rule);
}

@media (max-width: 1180px) {
  .qw-foot { grid-template-columns: 1fr; }
  .qw-meta { grid-template-columns: repeat(2, 1fr); gap: 4px 0; }
  .qw-meta-item:nth-child(2) { border-right: 0; }
  .qw-meta-item:nth-child(3) { padding-left: 0; }
  .qw-meta-item:nth-child(3),
  .qw-meta-item:nth-child(4) { padding-top: 14px; }
}
@media (max-width: 720px) {
  .qw-head { padding: 22px 20px 18px; }
  .qw-body { padding: 14px; }
  .qw-foot { padding: 18px; }
  .qw-meta { grid-template-columns: 1fr; }
  .qw-meta-item { border-right: 0; padding: 8px 0 !important; }
  .qw-head-id h2 { font-size: 22px; }
  .qw-hero-amount { font-size: 26px; }
}

/* ============================================================
   Quote Workspace v3: refined professional editor
   ============================================================ */
.qw {
  --qw-paper: #ffffff;
  --qw-paper-soft: #fafafa;
  --qw-paper-warm: #fbfaf8;
  --qw-ink: #111113;
  --qw-muted: #6f7179;
  --qw-soft: #a4a6ad;
  --qw-line: #e8e8eb;
  --qw-line-soft: #f1f1f3;
  --qw-amber: #b88a3e;
  --qw-amber-soft: rgba(184, 138, 62, .11);
  --qw-shadow: 0 18px 48px rgba(20, 20, 24, .06);

  max-width: 1440px;
  gap: 18px;
}

.qw-head,
.qw-body,
.qw-foot {
  border-color: var(--qw-line);
  border-radius: 20px;
  box-shadow: var(--qw-shadow);
}

.qw-head {
  padding: 30px 34px 28px;
  gap: 24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(251,250,248,.95) 100%),
    var(--qw-paper);
}

.qw-rail {
  height: 4px;
  background:
    linear-gradient(90deg,
      var(--qw-ink) 0%,
      var(--qw-ink) 50%,
      var(--qw-amber) 50%,
      var(--qw-amber) 62%,
      var(--qw-ink) 62%,
      var(--qw-ink) 100%);
}

.qw-head-top {
  align-items: flex-start;
  padding-bottom: 2px;
}

.qw-head-id {
  gap: 7px;
}

.qw-kicker {
  color: var(--qw-soft);
  font-size: 10px;
  letter-spacing: .28em;
}

.qw-head-id h2 {
  font-size: clamp(28px, 2.2vw, 38px);
  letter-spacing: -.04em;
}

.qw-status {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0 14px;
  color: var(--qw-ink);
  background: var(--qw-paper);
  box-shadow: inset 0 0 0 1px var(--qw-line), 0 8px 18px rgba(20,20,24,.05);
}

.qw-meta {
  grid-template-columns: minmax(190px, 1.05fr) minmax(170px, .9fr) minmax(280px, 1.55fr) minmax(150px, .75fr);
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--qw-line-soft);
}

.qw-meta-item,
.qw-meta-item + .qw-meta-item,
.qw-meta-item:last-child {
  min-height: 92px;
  padding: 16px;
  border: 1px solid var(--qw-line-soft);
  border-radius: 16px;
  background: rgba(255,255,255,.74);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.qw-meta-item {
  align-items: flex-start;
  gap: 13px;
}

.qw-meta-ic {
  width: 36px;
  height: 36px;
  flex-basis: 36px;
  border-radius: 12px;
  color: var(--qw-ink);
  background: var(--qw-paper-soft);
  border-color: var(--qw-line);
}

.qw-meta-ic i {
  width: 17px;
  height: 17px;
  stroke-width: 1.8;
}

.qw-meta-item > div {
  min-width: 0;
  gap: 5px;
}

.qw-meta-item label {
  color: var(--qw-soft);
  font-size: 10px;
  letter-spacing: .22em;
}

.qw-meta-item strong {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  color: var(--qw-ink);
  font-size: 15px;
  line-height: 1.28;
  letter-spacing: -.015em;
  white-space: normal;
  word-break: break-word;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.qw-meta-item:nth-child(3) strong {
  font-size: 14.5px;
}

.qw-body {
  gap: 16px;
  padding: 24px;
  background: var(--qw-paper);
  overflow: hidden;
}

.qw-body::before {
  opacity: .55;
  background-image:
    linear-gradient(180deg, rgba(184,138,62,.045), transparent 140px),
    repeating-linear-gradient(0deg, transparent 0 47px, rgba(0,0,0,.012) 47px 48px);
}

.line-table {
  width: 100%;
  overflow-x: auto;
  padding: 0;
}

.quote-sheet {
  min-width: 1040px;
  border-radius: 14px;
  border-color: #e8e8ec;
  box-shadow: none;
}

.quote-sheet-head,
.quote-sheet-row {
  grid-template-columns: 42px minmax(104px, .62fr) minmax(340px, 2.5fr) 64px 126px 76px 132px 46px;
}

.quote-sheet-head {
  min-height: 44px;
  padding: 0;
  background: #fafafa;
  border-bottom-color: var(--qw-line);
}

.quote-sheet-head > span {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 14px;
  color: #7b7d85;
  border-right: 0;
  font-size: 9.5px;
  letter-spacing: .16em;
  font-weight: 760;
}

.quote-sheet-head .qs-c-num,
.quote-sheet-head .qs-c-total {
  justify-content: flex-end;
}

.quote-sheet-row {
  min-height: 72px;
  padding: 0;
  border-bottom-color: #eeeeef;
  background: #fff;
}

.quote-sheet-row:hover {
  background: #fff;
}

.quote-sheet-row > span {
  min-height: 72px;
  padding: 10px 14px;
  border-right: 0;
}

.quote-sheet-row.is-preset {
  background: #fffefa;
}

.quote-sheet-row.is-preset::before {
  top: 10px;
  bottom: 10px;
  left: 0;
  width: 3px;
  border-radius: 0 999px 999px 0;
}

.qs-c-idx {
  color: var(--qw-soft);
  font-size: 11px;
}

.qs-c-sku input,
.qs-c-name input {
  min-width: 0;
}

.qs-c-sku.qs-c-edit input {
  color: var(--qw-ink);
  font-size: 12px;
  font-weight: 660;
  letter-spacing: -.01em;
}

.qs-c-name.qs-c-edit {
  align-items: flex-start;
  gap: 7px;
}

.qs-c-name.qs-c-edit input {
  padding-left: 0;
  color: var(--qw-ink);
  font-size: 14.5px;
  font-weight: 620;
  line-height: 1.25;
}

.qs-c-name.qs-c-edit small {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding-left: 0;
  color: var(--qw-muted);
  font-size: 12px;
  font-weight: 650;
}

.qs-pdf-import {
  width: max-content;
  max-width: 100%;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 6px;
  border: 1px solid #dedee4;
  border-radius: 9px;
  padding: 0 10px;
  color: var(--qw-ink);
  background: #fff;
  font-size: 11px;
  font-weight: 720;
  letter-spacing: .01em;
  cursor: pointer;
  white-space: nowrap;
}

.qs-pdf-import i,
.qs-pdf-import svg {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
  stroke-width: 2;
}

.qs-pdf-import:disabled {
  cursor: wait;
  color: var(--qw-muted);
  background: #f5f5f6;
}

.qs-pdf-import:focus-visible {
  outline: none;
  border-color: #c9c9d0;
  box-shadow: 0 0 0 3px rgba(24, 24, 27, 0.06);
}

.qs-preset-tag {
  margin-top: 0;
  color: #8a6428;
  background: rgba(184,138,62,.13);
  border: 1px solid rgba(184,138,62,.16);
}

.qs-c-edit input {
  border-color: transparent;
  background: transparent;
  border-radius: 9px;
}

.qs-c-edit input:hover {
  background: #f6f6f7;
}

.qs-c-edit input:focus {
  border-color: rgba(184,138,62,.34);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(184,138,62,.11);
}

.qs-c-num {
  font-size: 13.5px;
  font-weight: 620;
}

.qs-c-total {
  color: var(--qw-ink);
  font-size: 14.5px;
  font-weight: 760;
}

.qs-btn-del {
  width: 32px;
  height: 32px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #9a9aa2;
  background: transparent;
}

.qs-btn-del svg,
.qs-btn-del i {
  width: 17px;
  height: 17px;
  stroke-width: 1.9;
}

.qs-btn-del:hover {
  color: #18181b;
  background: #f4f4f5;
  border-color: #ececef;
}

.qs-btn-del:focus-visible {
  outline: none;
  color: #18181b;
  border-color: #c9c9d0;
  box-shadow: 0 0 0 3px rgba(24, 24, 27, 0.06);
}

.qw-add {
  height: 46px;
  padding: 0 18px;
  border-radius: 14px;
  border-color: var(--qw-line);
  border-style: solid;
  background: #fff;
  box-shadow: 0 8px 22px rgba(20,20,24,.04);
}

.qw-add:hover {
  color: var(--qw-ink);
  border-color: rgba(184,138,62,.5);
  background: var(--qw-amber-soft);
  transform: translateY(-1px);
}

.qw-foot {
  grid-template-columns: minmax(360px, 1fr) minmax(390px, 460px);
  gap: 24px;
  padding: 24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(251,250,248,.94)),
    var(--qw-paper);
}

.qw-breakdown {
  padding: 18px 22px;
  border: 1px solid var(--qw-line-soft);
  border-radius: 16px;
  background: rgba(255,255,255,.78);
}

.qw-breakdown .total-row {
  padding: 10px 0;
}

.qw-breakdown .total-row span {
  color: var(--qw-muted);
  font-size: 13.5px;
}

.qw-breakdown .total-row strong {
  font-size: 15px;
  font-weight: 750;
}

.qw-breakdown .qw-price-values {
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 10px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.qw-breakdown .qw-price-values del {
  color: var(--qw-muted);
  font-size: 12px;
  font-weight: 600;
  text-decoration-color: rgba(113, 113, 122, .65);
}

.qw-breakdown .qw-price-values em {
  color: var(--qw-ink);
  font-style: normal;
  font-size: 15px;
  font-weight: 750;
}

.qw-breakdown .has-price-adjustment .qw-price-values em {
  color: #8a6428;
}

.qw-breakdown .total-row-transport {
  align-items: center;
  gap: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
}

.qw-breakdown .total-row-label {
  display: grid;
  min-width: 0;
  flex: 1;
  gap: 8px;
}

.qw-transport-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 38px;
  gap: 4px;
  padding: 4px;
  border: 0;
  border-radius: 10px;
  background: var(--qw-paper-soft);
  transition: background .14s ease;
}

.qw-transport-picker:hover,
.qw-transport-picker.is-open {
  background: #f1f1f3;
}

.qw-breakdown .qw-transport-select-label {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  height: 27px;
  padding: 0 9px;
  border-radius: 7px;
  color: var(--qw-muted);
  background: var(--qw-paper);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .11em;
  line-height: 1;
  text-transform: uppercase;
}

.qw-transport-trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 30px;
  padding: 0 7px 0 8px;
  border: 0;
  border-radius: 7px;
  outline: none;
  box-shadow: none;
  background: transparent;
  color: var(--qw-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
}

.qw-transport-trigger:hover,
.qw-transport-trigger:focus-visible {
  background: #fff;
}

.qw-breakdown .qw-transport-trigger span {
  color: var(--qw-ink);
  font-size: 13px;
}

.qw-transport-trigger svg {
  width: 14px;
  height: 14px;
  color: var(--qw-muted);
  transition: transform .18s ease;
}

.qw-transport-picker.is-open .qw-transport-trigger svg {
  transform: rotate(180deg);
}

.qw-transport-manual {
  display: inline-grid;
  grid-template-columns: auto 82px auto;
  align-items: center;
  width: fit-content;
  min-height: 34px;
  gap: 6px;
  padding: 4px 8px;
  border: 0;
  border-radius: 10px;
  background: var(--qw-paper-soft);
  box-shadow: none;
}

.qw-transport-manual:focus-within {
  border-color: transparent;
  box-shadow: none;
}

.qw-breakdown .qw-transport-manual span {
  color: var(--qw-muted);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.qw-transport-manual input {
  width: 82px;
  min-width: 0;
  height: 26px;
  padding: 0 4px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  box-shadow: none;
  color: var(--qw-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 760;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.qw-transport-manual input:focus {
  outline: none;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.qw-transport-manual input:focus-visible {
  outline: none;
  box-shadow: none;
}

.qw-transport-manual em {
  color: var(--qw-muted);
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
}

.qw-transport-menu {
  position: absolute;
  left: 0;
  bottom: calc(100% + 8px);
  z-index: 20;
  display: grid;
  gap: 4px;
  width: 236px;
  padding: 6px;
  border: 1px solid var(--qw-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 34px rgba(18, 18, 20, .13);
}

.qw-transport-menu.is-hidden {
  display: none;
}

.qw-transport-option {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 10px 0 7px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  color: var(--qw-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 680;
  text-align: left;
  cursor: pointer;
}

.qw-transport-option:hover,
.qw-transport-option.is-selected {
  background: var(--qw-paper-soft);
}

.qw-breakdown .qw-transport-option span:not(.qw-transport-option-index) {
  color: var(--qw-ink);
  font-size: 13px;
}

.qw-transport-option-index {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 7px;
  color: #8a6428;
  background: var(--qw-amber-soft);
  font-size: 11px;
  font-weight: 800;
}

.qw-transport-option svg {
  width: 14px;
  height: 14px;
  color: #8a6428;
}

.qw-breakdown .qw-transport-amount {
  align-self: flex-end;
  padding-bottom: 10px;
  white-space: nowrap;
}

.qw-hero-card {
  min-height: 132px;
  padding: 24px 26px;
  border-radius: 18px;
  background:
    radial-gradient(circle at 85% 10%, rgba(184,138,62,.2), transparent 38%),
    linear-gradient(145deg, #171719 0%, #24211e 100%);
  box-shadow: 0 18px 40px rgba(18,18,20,.18);
}

.qw-hero-card::before {
  width: 5px;
}

.qw-hero-kicker {
  color: rgba(255,255,255,.58);
  letter-spacing: .28em;
}

.qw-hero-amount {
  margin-top: 10px;
  font-size: clamp(34px, 3vw, 46px);
}

.qw-hero-sub {
  color: rgba(255,255,255,.58);
  font-size: 12.5px;
}

.qw-actions {
  gap: 12px;
}

.qw-btn {
  min-height: 50px;
  border-radius: 14px;
  font-size: 14px;
}

.qw-btn-secondary {
  padding-inline: 18px;
  box-shadow: 0 8px 22px rgba(20,20,24,.04);
}

.qw-btn-primary {
  box-shadow: 0 12px 26px rgba(20,20,24,.2);
}

@media (max-width: 1280px) {
  .qw {
    max-width: 100%;
  }

  .qw-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .qw-meta-item,
  .qw-meta-item + .qw-meta-item,
  .qw-meta-item:last-child {
    min-height: 86px;
    padding: 14px;
    border-right: 1px solid var(--qw-line-soft);
  }
}

@media (max-width: 880px) {
  .qw-head,
  .qw-body,
  .qw-foot {
    border-radius: 16px;
  }

  .qw-head {
    padding: 24px 20px 20px;
  }

  .qw-meta,
  .qw-foot {
    grid-template-columns: 1fr;
  }

  .qw-actions {
    flex-direction: column;
  }
}

/* Quote editor focus mode: only article rows and totals */
.qw .qw-head {
  display: none;
}

.qw {
  margin-top: 22px;
}

.qw-body {
  margin-top: 0;
}

.qw-foot {
  margin-top: 4px;
}

.qw-foot {
  width: min(100%, 980px);
  margin-left: auto;
  grid-template-columns: minmax(320px, 430px) minmax(390px, 460px);
  justify-content: end;
}

.qw-breakdown {
  width: min(100%, 430px);
  justify-self: end;
}

@media (max-width: 1180px) {
  .qw-foot {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .qw-breakdown {
    width: 100%;
  }
}

/* Quote sheet micro-adjustments */
.line-table {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.quote-sheet {
  min-width: 1160px;
}

.quote-sheet-head,
.quote-sheet-row {
  grid-template-columns: 46px minmax(112px, .72fr) minmax(340px, 2.4fr) 74px 172px 92px 150px 52px;
}

.quote-sheet-head > span {
  white-space: nowrap;
}

.qs-c-edit input {
  border-color: transparent;
  box-shadow: none;
  outline: 0;
}

.qs-c-edit input:hover,
.qs-c-edit input:focus {
  background: #f3f3f4;
  border-color: transparent;
  box-shadow: none;
  outline: 0;
}

/* Dashboard quotes table rows */
#recentQuotesTable {
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

#recentQuotesTable th,
#recentQuotesTable td {
  vertical-align: middle;
}

#recentQuotesTable thead th {
  height: 44px;
  padding: 0 16px;
  border-bottom: 1px solid var(--border);
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
}

#recentQuotesTable thead th:nth-child(1) { width: 48px; }
#recentQuotesTable thead th:nth-child(2) { width: 25%; }
#recentQuotesTable thead th:nth-child(3) { width: 14%; }
#recentQuotesTable thead th:nth-child(4) { width: 28%; }
#recentQuotesTable thead th:nth-child(5) { width: 17%; }
#recentQuotesTable thead th:nth-child(6) { width: 16%; }

#recentQuotesTable tbody tr {
  transition: background .14s ease;
}

#recentQuotesTable tbody tr:hover {
  background: rgba(24, 24, 27, .025);
}

#recentQuotesTable tbody td {
  height: 64px;
  padding: 0 16px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#recentQuotesTable tbody td.check {
  width: 48px;
  padding: 0;
  text-align: center;
}

#recentQuotesTable .quote-seller {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

#recentQuotesTable .quote-seller .avatar-ini {
  width: 25px;
  height: 25px;
  flex-basis: 25px;
  background: #18181b;
  color: #fff;
  font-size: 9px;
}

#recentQuotesTable .quote-seller strong {
  font-size: 13px;
  font-weight: 550;
}

.quote-validity-empty {
  color: var(--text-muted);
}

.quote-validity-meter {
  display: grid;
  max-width: 214px;
  gap: 7px;
}

.quote-validity-bars {
  display: grid;
  grid-template-columns: repeat(var(--validity-bars), minmax(2px, 1fr));
  gap: 3px;
  width: 100%;
}

.quote-validity-bars i {
  --validity-hue: calc(128 - (var(--validity-progress) * 128));
  height: 9px;
  border-radius: 3px;
  background: hsl(var(--validity-hue) 61% 46%);
  opacity: 0.22;
  transition: opacity 160ms ease, transform 160ms ease;
}

.quote-validity-meter small {
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 520;
  line-height: 1;
}

.quote-validity-bars .is-remaining {
  opacity: 1;
}

.quote-validity-meter.is-expired .quote-validity-bars i {
  background: #c84f56;
  opacity: 1;
}

.quote-validity-meter.is-warning small {
  color: #956a25;
}

.quote-validity-meter.is-critical small,
.quote-validity-meter.is-expired small {
  color: #a12f38;
}

#recentQuotesTable tbody td.check input {
  accent-color: var(--text);
}

#recentQuotesTable .cell-name {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  font-weight: 600;
}

#recentQuotesTable .cell-name .avatar-ini {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--text);
}

#recentQuotesTable .quote-name-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

#recentQuotesTable .quote-row-delete {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-grid;
  place-items: center;
  margin-left: 2px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text-soft);
  cursor: pointer;
  opacity: .72;
  transition: background .14s ease, border-color .14s ease, color .14s ease, opacity .14s ease;
}

#recentQuotesTable .quote-row-delete svg {
  width: 15px;
  height: 15px;
  stroke-width: 1.9;
}

#recentQuotesTable .quote-row-delete:hover {
  border-color: rgba(161, 47, 56, .14);
  background: rgba(161, 47, 56, .08);
  color: #a12f38;
  opacity: 1;
}

#recentQuotesTable tbody td:last-child {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

/* Quote print modal */
.print-modal-panel {
  width: min(1120px, calc(100vw - 52px));
  max-height: calc(100vh - 56px);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0;
  overflow: hidden;
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,249,247,.98)),
    #fff;
  box-shadow: 0 28px 80px rgba(18, 18, 20, .26);
}

.print-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 32px 26px;
  border-bottom: 1px solid var(--border);
}

.print-modal-title {
  display: flex;
  gap: 18px;
  align-items: flex-start;
}

.print-modal-title h3 {
  margin: 2px 0 8px;
  font-size: 30px;
  letter-spacing: -.04em;
}

.print-modal-title p {
  max-width: 680px;
  margin: 0;
  color: var(--text-muted);
  line-height: 1.45;
}

.print-modal-icon {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  flex: 0 0 54px;
  border-radius: 16px;
  background: #18181b;
  color: #fff;
  box-shadow: 0 14px 30px rgba(18,18,20,.18);
}

.print-modal-icon svg {
  width: 24px;
  height: 24px;
}

.print-modal-close {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  min-height: 42px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--text-muted);
  cursor: pointer;
  box-shadow: none;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.print-modal-close svg {
  width: 18px;
  height: 18px;
}

.print-modal-close:hover {
  border-color: var(--border-strong);
  background: var(--surface);
  color: var(--text);
}

.print-modal-body {
  max-height: calc(100vh - 230px);
  overflow: auto;
  padding: 26px 32px 30px;
}

.print-option-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.print-option-card {
  position: relative;
  display: flex;
  gap: 14px;
  min-height: 112px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.86);
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.print-option-card:hover {
  transform: translateY(-1px);
  border-color: rgba(184,138,62,.35);
  box-shadow: 0 16px 36px rgba(20,20,24,.08);
}

.print-option-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.print-option-check {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  flex: 0 0 34px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #f7f7f8;
  color: transparent;
}

.print-option-card input:checked + .print-option-check {
  border-color: #18181b;
  background: #18181b;
  color: #fff;
}

.print-option-copy {
  display: grid;
  gap: 7px;
}

.print-option-copy strong {
  font-size: 15px;
}

.print-option-copy small {
  color: var(--text-muted);
  line-height: 1.35;
}

.print-config-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin-top: 18px;
}

.print-config-card {
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: rgba(255,255,255,.82);
}

.print-config-head {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin-bottom: 18px;
}

.print-config-head > span {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 13px;
  background: #f4f0e8;
  color: #8a6428;
}

.print-config-head h4 {
  margin: 0 0 5px;
  font-size: 18px;
}

.print-config-head p {
  margin: 0;
  color: var(--text-muted);
}

.print-financing-summary {
  display: grid;
  gap: 6px;
  border: 1px solid rgba(184, 138, 62, .27);
  border-radius: 16px;
  padding: 15px 16px;
  background: #fbf9f5;
}

.print-financing-summary .print-plan-brand {
  color: #8a6428;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.print-financing-summary strong {
  color: var(--text);
  font-size: 17px;
}

.print-financing-summary small {
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 650;
}

.print-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.print-field-grid label,
.print-note-field {
  display: grid;
  gap: 8px;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
}

.print-field-grid select,
.print-field-grid input,
.print-note-field textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-weight: 750;
  outline: 0;
}

.print-field-grid select,
.print-field-grid input {
  height: 48px;
  padding: 0 14px;
}

.print-note-field {
  margin-top: 12px;
}

.print-note-field textarea {
  min-height: 86px;
  padding: 13px 14px;
  resize: vertical;
  line-height: 1.4;
}

.print-field-grid select:focus,
.print-field-grid input:focus,
.print-note-field textarea:focus {
  border-color: rgba(184,138,62,.55);
  box-shadow: 0 0 0 4px rgba(184,138,62,.12);
}

.print-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 18px 32px 28px;
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,.76);
}

.print-cancel,
.print-generate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 20px;
  border-radius: 15px;
  font-weight: 850;
  cursor: pointer;
}

.print-cancel {
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
}

.print-generate {
  border: 1px solid #18181b;
  background: #18181b;
  color: #fff;
  box-shadow: 0 14px 28px rgba(18,18,20,.18);
}

.print-sheet {
  display: none;
}

@media (max-width: 920px) {
  .print-option-grid,
  .print-config-grid {
    grid-template-columns: 1fr;
  }

  .print-modal-panel {
    width: calc(100vw - 24px);
  }

  .print-modal-head,
  .print-modal-body,
  .print-modal-actions {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@page {
  size: A4;
  margin: 0;
}

@media print {
  body.printing-quote {
    background: #fff !important;
    margin: 0 !important;
  }

  body.printing-quote .app-shell,
  body.printing-quote .modal,
  body.printing-quote .toast {
    display: none !important;
  }

  body.printing-quote .print-sheet {
    display: block !important;
  }

  body.printing-quote .quote-print-document {
    display: flex;
    position: relative;
    flex-direction: column;
    box-sizing: border-box;
    width: 210mm;
    min-height: 297mm;
    padding: 11mm 12mm 10mm;
    color: #1c1b1a;
    background:
      linear-gradient(90deg, #b88a3e 0 2.4mm, transparent 2.4mm),
      #fff;
    font-family: var(--font);
    font-size: 9pt;
    line-height: 1.28;
    break-after: page;
    page-break-after: always;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body.printing-quote .quote-print-document:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  .quote-print-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: start;
    gap: 9mm;
    padding-bottom: 6mm;
    border-bottom: 1px solid #d9d6cf;
  }

  .quote-print-brand {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 3.5mm;
  }

  .quote-print-brand img {
    width: 14mm;
    height: 14mm;
    border-radius: 2mm;
    object-fit: cover;
  }

  .quote-print-brand span,
  .quote-print-doc-meta span,
  .quote-print-client-main span,
  .quote-print-fact span,
  .quote-print-section-head span,
  .quote-print-summary-list span,
  .quote-print-total span,
  .quote-print-financing span,
  .quote-print-legal-note span,
  .quote-print-signature span {
    display: block;
    color: #73706a;
    font-size: 7pt;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .quote-print-brand strong {
    display: block;
    margin-top: 1mm;
    color: #1c1b1a;
    font-size: 14pt;
    font-weight: 850;
    line-height: 1.05;
    letter-spacing: 0;
  }

  .quote-print-doc-meta {
    min-width: 34mm;
    text-align: right;
  }

  .quote-print-doc-meta strong {
    display: block;
    margin-top: 1mm;
    color: #1c1b1a;
    font-size: 13pt;
    line-height: 1.05;
    letter-spacing: 0;
  }

  .quote-print-doc-meta small {
    display: block;
    margin-top: 1.5mm;
    color: #6b6863;
    font-size: 7.4pt;
    line-height: 1.25;
  }

  .quote-print-page-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 11mm;
    height: 7mm;
    border: 1px solid #d9d6cf;
    border-radius: 999px;
    color: #4f4b45;
    font-size: 7pt;
    font-weight: 800;
  }

  .quote-print-main {
    display: grid;
    flex: 1 1 auto;
    align-content: start;
    gap: 6mm;
    padding-top: 7mm;
  }

  .quote-print-client {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.78fr);
    align-items: start;
    gap: 9mm;
    padding: 1mm 0 2.5mm;
    background: #fff;
  }

  .quote-print-client-main {
    padding-top: 1.2mm;
  }

  .quote-print-client-main h1 {
    margin: 1.7mm 0 0;
    color: #1c1b1a;
    font-size: 19.5pt;
    font-weight: 760;
    line-height: 1.03;
    letter-spacing: 0;
  }

  .quote-print-client-main p {
    max-width: 50mm;
    margin: 2.6mm 0 0;
    color: #68645d;
    font-size: 8pt;
    line-height: 1.35;
  }

  .quote-print-client-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.4mm 8mm;
    align-self: start;
    padding-left: 7mm;
    border-left: 1px solid #ded8cf;
  }

  .quote-print-fact {
    min-width: 0;
    min-height: 8.8mm;
    padding: 0 0 2mm;
    border-bottom: 1px solid #e6e1d8;
    background: transparent;
  }

  .quote-print-fact.is-wide {
    grid-column: 1 / -1;
  }

  .quote-print-fact strong {
    display: block;
    margin-top: .8mm;
    min-height: 3.6mm;
    color: #24211d;
    font-size: 8.8pt;
    font-weight: 680;
    line-height: 1.22;
    overflow-wrap: anywhere;
  }

  .quote-print-section {
    display: grid;
    gap: 3mm;
  }

  .quote-print-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4mm;
    padding-bottom: 2mm;
    border-bottom: 1px solid #dedbd4;
  }

  .quote-print-table {
    width: 100%;
    border: 1px solid #dedbd4;
    border-collapse: collapse;
    border-radius: 2mm;
    background: #fff;
    overflow: hidden;
    table-layout: fixed;
  }

  .quote-print-col-index {
    width: 8mm;
  }

  .quote-print-col-description {
    width: auto;
  }

  .quote-print-col-small {
    width: 14mm;
  }

  .quote-print-col-money {
    width: 25mm;
  }

  .quote-print-table thead {
    display: table-header-group;
  }

  .quote-print-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .quote-print-table th {
    padding: 2.4mm 2.2mm;
    border-bottom: 1px solid #d8d3ca;
    background: #f6f4ef;
    color: #706b63;
    font-size: 6.7pt;
    font-weight: 850;
    letter-spacing: 0;
    text-align: left;
    text-transform: uppercase;
  }

  .quote-print-table th:nth-child(n + 3),
  .quote-print-table td:nth-child(n + 3) {
    text-align: right;
  }

  .quote-print-table td {
    padding: 2.6mm 2.2mm;
    border-bottom: 1px solid #ebe8e1;
    color: #25221e;
    font-size: 8.2pt;
    line-height: 1.22;
    vertical-align: top;
  }

  .quote-print-table tbody tr:last-child td {
    border-bottom: 0;
  }

  .quote-print-line-index {
    color: #8a857d;
    font-size: 7pt;
    font-weight: 850;
  }

  .quote-print-line-description {
    text-align: left;
  }

  .quote-print-line-description strong {
    display: block;
    color: #1c1b1a;
    font-size: 8.9pt;
    font-weight: 800;
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  .quote-print-line-description span {
    display: block;
    margin-top: 1mm;
    color: #716d66;
    font-size: 7pt;
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  .quote-print-line-total {
    color: #1c1b1a;
    font-weight: 900;
  }

  .quote-print-summary-block {
    display: grid;
    gap: 2.4mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .quote-print-summary-title {
    color: #2b2722;
    font-size: 8.2pt;
    font-weight: 850;
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .quote-print-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 64mm;
    gap: 0;
    align-items: stretch;
    border: 1px solid #d8d2c8;
    border-radius: 1.8mm;
    background: #fff;
    overflow: hidden;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .quote-print-summary-list {
    display: grid;
    align-content: center;
    padding: 4.4mm 6mm;
  }

  .quote-print-summary-row {
    display: flex;
    justify-content: space-between;
    gap: 5mm;
    padding: 1.6mm 0;
    border-bottom: 1px solid #e8e1d7;
  }

  .quote-print-summary-row:last-child {
    border-bottom: 0;
  }

  .quote-print-summary-list strong {
    color: #1f1d1a;
    font-size: 9pt;
    font-weight: 780;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .quote-print-total {
    display: grid;
    align-content: center;
    padding: 5mm 6mm;
    border-left: 1px solid #d8d2c8;
    background: #1f1d1a;
    color: #fff;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .quote-print-total span,
  .quote-print-total small {
    color: rgba(255,255,255,.68);
  }

  .quote-print-total strong {
    display: block;
    margin-top: 1.1mm;
    color: #fff;
    font-size: 24pt;
    font-weight: 760;
    line-height: 1.02;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .quote-print-total small {
    display: block;
    margin-top: 1.4mm;
    font-size: 7.6pt;
  }

  .quote-print-financing {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .quote-print-financing > div {
    padding: 3.8mm 4.5mm;
    border: 1px solid #d8d2c8;
    border-top: 1.2mm solid #b88a3e;
    border-radius: 1.8mm;
    background: #fff;
  }

  .quote-print-financing strong {
    display: block;
    margin-top: 1.3mm;
    color: #1c1b1a;
    font-size: 13pt;
    font-weight: 760;
    line-height: 1.08;
    font-variant-numeric: tabular-nums;
  }

  .quote-print-financing small {
    display: block;
    margin-top: 1.4mm;
    color: #6e675c;
    font-size: 7.6pt;
    line-height: 1.22;
  }

  .quote-print-footer {
    display: grid;
    flex: 0 0 auto;
    gap: 3mm;
    margin-top: auto;
    padding-top: 5mm;
    border-top: 1px solid #dedbd4;
    break-before: avoid;
    break-inside: avoid;
    page-break-before: avoid;
    page-break-inside: avoid;
  }

  .quote-print-footer-content {
    display: grid;
    gap: 3mm;
  }

  .quote-print-legal {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    border: 1px solid #dedbd4;
    border-radius: 1.6mm;
    background: #fff;
    overflow: hidden;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .quote-print-legal-note {
    padding: 2.4mm 3.2mm;
    border-bottom: 1px solid #ebe6dc;
    background: #fff;
  }

  .quote-print-legal-note:last-child {
    border-bottom: 0;
  }

  .quote-print-legal-note p {
    margin: .8mm 0 0;
    color: #59554f;
    font-size: 6.9pt;
    line-height: 1.28;
  }

  .quote-print-signatures {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
    gap: 16mm;
    margin-top: .5mm;
  }

  .quote-print-signatures.is-single {
    grid-template-columns: 1fr;
  }

  .quote-print-signature {
    position: relative;
    min-height: 19mm;
    padding-top: 3mm;
    border-top: .35mm solid #8c867b;
  }

  .quote-print-signature::before {
    content: "";
    position: absolute;
    top: -.35mm;
    left: 0;
    width: 18mm;
    height: .35mm;
    background: #b88a3e;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .quote-print-signature strong,
  .quote-print-signature small {
    display: block;
    color: #1c1b1a;
  }

  .quote-print-signature strong {
    margin-top: .9mm;
    font-size: 9.2pt;
    font-weight: 780;
    line-height: 1.14;
  }

  .quote-print-signature small {
    margin-top: 1mm;
    color: #6f6b65;
    font-size: 7.1pt;
    line-height: 1.22;
  }

  .quote-print-signature.is-customer {
    text-align: right;
  }

  .quote-print-signature.is-customer::before {
    right: 0;
    left: auto;
  }

  body.printing-quote .pdf-document {
    position: relative;
    box-sizing: border-box;
    height: 297mm;
    min-height: 297mm;
    padding: 10mm 11mm;
    box-sizing: border-box;
    color: #18181b;
    font-family: var(--font);
    font-size: 9.8pt;
    break-after: page;
    page-break-after: always;
  }

  body.printing-quote .pdf-document.is-last-page {
    padding-bottom: 58mm;
  }

  body.printing-quote .pdf-document:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  body.printing-quote .pdf-fixed-footer {
    position: absolute;
    right: 11mm;
    bottom: 10mm;
    left: 11mm;
  }

  body.printing-quote .pdf-document.pdf-density-compact .pdf-fixed-footer {
    right: 10mm;
    bottom: 8mm;
    left: 10mm;
  }

  body.printing-quote .pdf-document.pdf-density-spacious .pdf-fixed-footer {
    right: 12mm;
    bottom: 12mm;
    left: 12mm;
  }

  body.printing-quote .pdf-document.pdf-density-compact {
    padding: 8mm 10mm;
    font-size: 9pt;
  }

  body.printing-quote .pdf-document.pdf-density-compact.is-last-page {
    padding-bottom: 52mm;
  }

  body.printing-quote .pdf-document.pdf-density-spacious {
    padding: 12mm;
    font-size: 10.2pt;
  }

  body.printing-quote .pdf-document.pdf-density-spacious.is-last-page {
    padding-bottom: 66mm;
  }

  body.printing-quote .pdf-document.pdf-type-small {
    font-size: 9pt;
  }

  body.printing-quote .pdf-document.pdf-type-large {
    font-size: 10.6pt;
  }

  .pdf-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 13px;
    border-bottom: 1px solid #dedede;
  }

  .pdf-brand {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .pdf-brand img {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    object-fit: cover;
  }

  .pdf-document.pdf-logo-small .pdf-brand img {
    width: 30px;
    height: 30px;
  }

  .pdf-document.pdf-logo-large .pdf-brand img {
    width: 46px;
    height: 46px;
  }

  .pdf-brand strong,
  .pdf-quote-id strong {
    display: block;
    font-size: 15pt;
    letter-spacing: -.03em;
  }

  .pdf-brand span,
  .pdf-quote-id span,
  .pdf-eyebrow,
  .pdf-client-details span,
  .pdf-section-title span,
  .pdf-total-card span,
  .pdf-financing span {
    display: block;
    color: #8b8d95;
    font-size: 7.1pt;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
  }

  .pdf-quote-id {
    text-align: right;
  }

  .pdf-quote-id em {
    display: inline-block;
    margin-top: 4px;
    padding: 3px 8px;
    border: 1px solid #dcd9d3;
    border-radius: 999px;
    color: #5f6067;
    font-size: 7pt;
    font-style: normal;
    font-weight: 800;
    text-transform: uppercase;
  }

  .pdf-client-band {
    display: block;
    margin-top: 12px;
  }

  .pdf-client-card {
    border: 1px solid #dedede;
    border-radius: 18px;
    break-inside: avoid;
    background: #fff;
  }

  .pdf-client-card {
    padding: 14px 16px;
  }

  .pdf-document.pdf-corners-square :is(.pdf-client-card, .pdf-lines, .pdf-article-card, .pdf-article-values div, .pdf-summary-list, .pdf-total-card, .pdf-financing > div, .pdf-legal-note) {
    border-radius: 2px;
  }

  .pdf-document.pdf-corners-rounded :is(.pdf-client-card, .pdf-lines, .pdf-article-card, .pdf-article-values div, .pdf-summary-list, .pdf-total-card, .pdf-financing > div, .pdf-legal-note) {
    border-radius: 18px;
  }

  .pdf-client-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .pdf-client-ref {
    color: #7b7d84;
    font-size: 7.1pt;
    font-weight: 800;
  }

  .pdf-client-main {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    padding-bottom: 11px;
    border-bottom: 1px solid #ececee;
  }

  .pdf-client-avatar {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    flex: 0 0 36px;
    border-radius: 12px;
    background: #18181b !important;
    color: #fff !important;
    font-size: 8.6pt;
    font-weight: 900;
    letter-spacing: .08em;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    box-shadow: inset 0 0 0 36px #18181b;
  }

  .pdf-client-main strong {
    display: block;
    font-size: 15pt;
    letter-spacing: -.035em;
    line-height: 1.08;
  }

  .pdf-client-main small {
    display: block;
    margin-top: 3px;
    color: #73757d;
  }

  .pdf-client-details {
    display: grid;
    grid-template-columns: .85fr .85fr 1.3fr;
    gap: 8px;
    margin-top: 11px;
  }

  .pdf-client-details div {
    min-height: 38px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #f7f7f8;
  }

  .pdf-client-details strong {
    display: block;
    margin-top: 3px;
    font-size: 8.9pt;
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  .pdf-table-section,
  .pdf-summary,
  .pdf-financing {
    margin-top: 14px;
    break-inside: avoid;
  }

  .pdf-document.pdf-density-compact .pdf-table-section,
  .pdf-document.pdf-density-compact .pdf-summary,
  .pdf-document.pdf-density-compact .pdf-financing {
    margin-top: 10px;
  }

  .pdf-document.pdf-density-spacious .pdf-table-section,
  .pdf-document.pdf-density-spacious .pdf-summary,
  .pdf-document.pdf-density-spacious .pdf-financing {
    margin-top: 18px;
  }

  .pdf-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
  }

  .pdf-lines {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #dedede;
    border-radius: 12px;
    overflow: hidden;
  }

  .pdf-lines th {
    padding: 8px 9px;
    background: #f5f5f6;
    color: #73757d;
    font-size: 6.8pt;
    font-weight: 900;
    letter-spacing: .15em;
    text-align: left;
    text-transform: uppercase;
  }

  .pdf-lines th:nth-child(n + 2),
  .pdf-lines td:nth-child(n + 2) {
    text-align: right;
  }

  .pdf-lines td {
    padding: 8px 9px;
    border-top: 1px solid #ececee;
    line-height: 1.25;
    vertical-align: top;
  }

  .pdf-lines td:nth-child(n + 2) {
    font-weight: 850;
    white-space: nowrap;
  }

  .pdf-lines td strong,
  .pdf-lines td span {
    display: block;
  }

  .pdf-lines td span {
    margin-top: 4px;
    color: #7b7d84;
    font-size: 7.8pt;
  }

  .pdf-article-list {
    display: grid;
    gap: 8px;
  }

  .pdf-article-card {
    display: grid;
    gap: 8px;
    padding: 10px 11px;
    border: 1px solid #dedede;
    border-radius: 12px;
    background: #fff;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pdf-article-label,
  .pdf-article-values span {
    display: block;
    color: #73757d;
    font-size: 6.8pt;
    font-weight: 900;
    letter-spacing: .15em;
    text-transform: uppercase;
  }

  .pdf-article-heading strong {
    display: block;
    margin-top: 4px;
    font-size: 11.4pt;
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  .pdf-article-meta {
    display: block;
    margin-top: 4px;
    color: #7b7d84;
    font-size: 7.8pt;
    line-height: 1.22;
  }

  .pdf-article-values {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }

  .pdf-article-values div {
    min-width: 0;
    padding: 7px 8px;
    border-radius: 9px;
    background: #f7f7f8;
  }

  .pdf-article-values strong {
    display: block;
    margin-top: 3px;
    font-size: 8.7pt;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  .pdf-summary {
    display: grid;
    grid-template-columns: minmax(250px, 330px) 235px;
    gap: 12px;
    align-items: stretch;
    justify-content: start;
  }

  .pdf-document.pdf-summary-right .pdf-summary {
    justify-content: end;
  }

  .pdf-document.pdf-summary-medium .pdf-summary {
    grid-template-columns: minmax(280px, 400px) 235px;
  }

  .pdf-document.pdf-summary-wide .pdf-summary {
    grid-template-columns: minmax(320px, 470px) 235px;
  }

  .pdf-summary-list {
    padding: 13px 15px;
    border: 1px solid #e6e6e8;
    border-radius: 12px;
  }

  .pdf-summary-list div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 6.5px 0;
    border-bottom: 1px dotted #dedede;
  }

  .pdf-summary-list div:last-child {
    border-bottom: 0;
  }

  .pdf-summary-list span {
    color: #73757d;
  }

  .pdf-total-card {
    padding: 16px 17px;
    border-radius: 14px;
    background: #1b1b1e;
    color: #fff;
  }

  .pdf-document.pdf-theme-graphite .pdf-total-card {
    background: #34363d;
  }

  .pdf-document.pdf-theme-outline .pdf-total-card {
    border: 1px solid #dedede;
    background: #fff;
    color: #18181b;
  }

  .pdf-document.pdf-theme-outline .pdf-total-card span,
  .pdf-document.pdf-theme-outline .pdf-total-card small {
    color: #73757d;
  }

  .pdf-total-card strong {
    display: block;
    margin-top: 8px;
    font-size: 24pt;
    letter-spacing: -.04em;
  }

  .pdf-total-card small {
    color: rgba(255,255,255,.62);
  }

  .pdf-financing {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .pdf-financing > div {
    padding: 13px 15px;
    border: 1px solid #e1d8c8;
    border-radius: 12px;
    background: #fbf8f2;
  }

  .pdf-financing strong {
    display: block;
    margin-top: 6px;
    font-size: 16pt;
  }

  .pdf-financing small {
    display: block;
    margin-top: 5px;
    color: #73757d;
    font-size: 8.25pt;
    line-height: 1.22;
  }

  .pdf-legal-notes {
    display: grid;
    gap: 5px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #e6e6e8;
    break-before: avoid;
    break-inside: auto;
    page-break-before: avoid;
  }

  .pdf-fixed-footer .pdf-legal-notes {
    margin-top: 0;
  }

  .pdf-legal-note {
    display: grid;
    gap: 2px;
    padding: 6px 8px;
    border: 1px solid #ececee;
    border-radius: 8px;
    background: #fafafa;
  }

  .pdf-legal-note span {
    color: #3f3f46;
    font-size: 6.4pt;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
  }

  .pdf-legal-note p {
    margin: 0;
    color: #52525b;
    font-size: 6.8pt;
    line-height: 1.22;
  }

  .pdf-signatures {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 13px;
    break-before: avoid;
    break-inside: avoid;
    page-break-before: avoid;
  }

  .pdf-signatures.is-single {
    grid-template-columns: 1fr;
  }

  .pdf-signature-card {
    min-height: 46px;
    padding-top: 7px;
    border-top: 1px solid #bfc0c5;
  }

  .pdf-signature-card span {
    display: block;
    color: #73757d;
    font-size: 6.4pt;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  .pdf-signature-card strong {
    display: block;
    margin-top: 4px;
    font-size: 8.6pt;
    line-height: 1.2;
  }

  .pdf-signature-card small {
    display: block;
    margin-top: 2px;
    color: #73757d;
    font-size: 7pt;
  }

  .pdf-signature-client {
    text-align: right;
  }

}

/* ============================================================
   Modello commerciale — sezione modal regole azienda
   Riusa .cd-block / .cd-block-head / .cd-block-letter / .cd-block-stat
   ============================================================ */
.cd-commercial { gap: 14px; flex: 0 0 auto; min-height: auto; }
.cd-commercial-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.cd-commercial-transport {
  display: grid;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--cd-rule);
  border-radius: 12px;
  background: var(--cd-paper-2);
}
.cd-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.cd-field > span {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cd-muted);
}
.cd-field select,
.cd-field input {
  width: 100%;
  box-sizing: border-box;
  padding: 11px 13px;
  border: 1px solid var(--cd-rule);
  border-radius: 10px;
  background: #fff;
  color: var(--cd-ink);
  font-family: inherit;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.cd-field select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2371717a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
  padding-right: 34px;
  cursor: pointer;
}
.cd-field select:focus,
.cd-field input:focus {
  outline: none;
  border-color: var(--cd-graphite);
  box-shadow: 0 0 0 3px rgba(24,24,27,.08);
}
.cd-field input::-webkit-outer-spin-button,
.cd-field input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.cd-transport-switch {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
.cd-transport-switch-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--cd-ink);
}
.cd-transport-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.cd-transport-fields.is-hidden { display: none; }

.cd-transport-vat-option {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(18,18,21,.08);
  border-radius: 14px;
  background: rgba(18,18,21,.025);
}

.cd-transport-vat-option strong {
  display: block;
  color: var(--text);
  font-size: 13px;
  font-weight: 750;
}

.cd-transport-vat-option small {
  display: block;
  margin-top: 3px;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.35;
}

@media (max-width: 900px) {
  .cd-commercial-grid,
  .cd-transport-fields { grid-template-columns: 1fr; }
}

/* ============================================================
   Company detail refresh - clean commercial workspace
   ============================================================ */
.cd-panel {
  --cd-card: #ffffff;
  --cd-page: #f5f5f6;
  --cd-focus: rgba(24, 24, 27, 0.08);
  width: min(1680px, calc(100vw - 44px));
  height: min(920px, calc(100vh - 44px));
  border-radius: 14px;
  background: var(--cd-page);
  box-shadow: 0 28px 72px rgba(10, 12, 20, 0.18);
}

.cd-rail {
  height: 2px;
  background: var(--cd-graphite);
}

.cd-head {
  grid-template-columns: minmax(300px, 1fr) minmax(280px, auto) 42px;
  gap: 20px;
  padding: 18px 22px 16px;
  background: var(--cd-card);
}

.cd-brand {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  box-shadow: none;
}

.cd-brand::after {
  width: 8px;
  height: 8px;
  right: -2px;
  bottom: -2px;
}

.cd-titles h3 {
  font-size: 24px;
}

.cd-tabs {
  border-radius: 8px;
  background: var(--cd-page);
  padding: 5px;
  gap: 4px;
}

.cd-tab {
  min-height: 38px;
  border-radius: 6px;
  padding: 9px 15px;
}

.cd-tabs.is-env-profile-tabs {
  display: inline-flex;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  max-width: min(860px, 58vw);
}

.cd-tabs-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  padding: 5px;
  border: 1px solid var(--cd-rule);
  border-radius: 8px;
  background: var(--cd-page);
  overflow-x: auto;
  scrollbar-width: none;
}

.cd-tabs-group::-webkit-scrollbar {
  display: none;
}

.cd-tabs-env-group {
  flex: 0 0 auto;
}

.cd-tabs-profile-group {
  flex: 1 1 auto;
}

.cd-tabs.is-env-profile-tabs .cd-tab {
  min-height: 38px;
  padding: 8px 12px;
}

.cd-profile-tab {
  align-items: center;
  text-align: left;
}

.cd-profile-tab .cd-tab-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.cd-profile-tab .cd-tab-copy em,
.cd-profile-tab .cd-tab-copy strong {
  display: block;
  min-width: 0;
  line-height: 1;
  white-space: nowrap;
}

.cd-profile-tab .cd-tab-copy em {
  color: var(--cd-soft);
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cd-profile-tab .cd-tab-copy strong {
  color: inherit;
  font-size: 12px;
  font-weight: 750;
}

.cd-close {
  width: 38px;
  height: 38px;
  border-radius: 8px;
}

.cd-body {
  grid-template-columns: minmax(0, 1fr) minmax(800px, 900px);
  gap: 0;
  background: var(--cd-page);
}

.cd-col-config {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 14px;
  padding: 20px;
  background: var(--cd-page);
  scrollbar-gutter: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.cd-col-config::before {
  display: none;
}

.cd-col-config::-webkit-scrollbar,
.cd-col-preview::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.cd-preset-selector,
.cd-commercial {
  grid-column: 1 / -1;
}

.cd-block,
.cd-preset-selector {
  min-height: auto;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--cd-rule);
  border-radius: 8px;
  background: var(--cd-card);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}

.cd-block-head,
.cd-preset-selector-head {
  min-height: 0;
}

.cd-block-discounts .cd-block-head {
  align-items: flex-start;
  flex-wrap: wrap;
}

.cd-block-discounts .cd-block-stat {
  flex: 1 1 100%;
  margin-left: 34px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon {
  min-height: 52px;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  padding: 12px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-head,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-head {
  align-items: center;
  justify-content: flex-start;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-title > div,
.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-stat,
.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-sheet,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-title > div,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-fiscal-grid {
  display: none;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-letter,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-letter {
  width: 28px;
  height: 28px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-variable-markup {
  display: none;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible {
  grid-column: 1 / -1;
  min-height: 308px;
  height: auto;
  justify-content: flex-start;
  gap: 12px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-variable-markup {
  display: grid;
  width: 100%;
  padding: 12px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-variable-markup-head {
  align-items: center;
}

.cd-block-title {
  gap: 10px;
  align-items: flex-start;
}

.cd-block-letter {
  width: 24px;
  height: 24px;
  border-radius: 7px;
}

.cd-block-title h4,
.cd-preset-selector-head h4 {
  font-size: 15px;
  line-height: 1.2;
}

.cd-block-meta,
.cd-preset-selector-head p {
  max-width: 640px;
  font-size: 12px;
  line-height: 1.4;
}

.cd-commercial-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cd-field > span,
.cd-bigfield-lbl,
.cd-preset-fields label > span:first-child,
.cd-tier-row > span,
.cd-preset-kicker,
.cd-preset-code,
.cd-preset-fields-head span {
  letter-spacing: 0.08em;
}

.cd-field select,
.cd-field input,
.cd-preset-fields input,
.cd-sheet-input,
.cd-bigfield-wrap,
.cd-tier-row label {
  border-radius: 8px;
}

.cd-field select,
.cd-field input {
  min-height: 44px;
  background-color: var(--cd-card);
  font-weight: 650;
}

.cd-field select:focus,
.cd-field input:focus,
.cd-preset-fields input:focus,
.cd-sheet-input:focus-within,
.cd-bigfield:focus-within .cd-bigfield-wrap,
.cd-tier-row label:focus-within {
  border-color: var(--cd-graphite);
  box-shadow: 0 0 0 3px var(--cd-focus);
}

.cd-commercial-transport {
  padding: 13px 14px;
  border-radius: 8px;
  background: var(--cd-paper-2);
}

.cd-transport-switch {
  justify-content: space-between;
}

.cd-transport-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cd-transport-vat-option {
  border-radius: 8px;
  background: var(--cd-card);
}

.cd-sheet {
  border-radius: 8px;
}

.cd-sheet-head,
.cd-sheet-row {
  grid-template-columns: 42px minmax(0, 1fr) 118px;
}

.cd-sheet-head {
  padding: 9px 14px;
  background: var(--cd-paper-2);
}

.cd-sheet-row {
  min-height: 54px;
  padding: 8px 14px;
}

.cd-sheet-input {
  min-height: 36px;
  padding: 4px 10px;
}

.cd-sheet-input input {
  width: 60px;
}

.cd-fiscal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cd-bigfield {
  min-height: 74px;
  align-items: stretch;
  flex-direction: column;
  justify-content: space-between;
  border-radius: 8px;
}

.cd-bigfield-wrap {
  justify-content: flex-end;
  min-height: 42px;
}

.cd-bigfield-wrap input {
  font-size: 24px;
}

.cd-variable-markup {
  gap: 14px;
  margin-top: 0;
  padding: 14px;
  border-radius: 8px;
  background: var(--cd-paper-2);
}

.cd-variable-markup-head strong {
  font-size: 14px;
}

.cd-variable-markup-head p {
  max-width: 620px;
  font-size: 12px;
}

.cd-switch {
  width: 48px;
  height: 28px;
}

.cd-switch span {
  border: 1px solid rgba(24, 24, 27, 0.08);
}

.cd-switch span::after {
  top: 2px;
  left: 2px;
  width: 22px;
  height: 22px;
}

.cd-switch input:checked + span::after {
  transform: translateX(20px);
}

.cd-variable-tiers {
  gap: 8px;
  padding-top: 12px;
}

.cd-tier-row {
  grid-template-columns: minmax(120px, 1fr) 128px 92px;
}

.cd-tier-last {
  grid-template-columns: minmax(120px, 1fr) 92px;
}

.cd-preset-selector {
  background: var(--cd-card);
}

.cd-preset-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cd-preset-option {
  min-height: 92px;
  border-radius: 8px;
  padding: 13px 14px;
}

.cd-preset-option:hover {
  border-color: var(--cd-border-strong, var(--border-strong));
  background: var(--cd-paper-2);
}

.cd-preset-option.is-active {
  border-color: var(--cd-graphite);
  background: var(--cd-paper-2);
  box-shadow: inset 3px 0 0 var(--cd-amber);
}

.cd-preset-fields {
  padding-top: 2px;
}

.cd-preset-fields-head {
  padding-top: 0;
}

.cd-preset-add {
  border-radius: 8px;
}

.cd-preset-article-list {
  gap: 10px;
}

.cd-preset-article-row {
  grid-template-columns:
    34px
    minmax(180px, 1.2fr)
    minmax(112px, 0.72fr)
    minmax(112px, 0.58fr)
    34px;
  grid-template-areas:
    "idx name code code remove"
    "idx list discount markup remove"
    "idx stack stack stack remove";
  gap: 10px;
  padding: 12px;
  border-radius: 8px;
}

.cd-preset-article-index {
  grid-area: idx;
  align-self: center;
  width: 30px;
  height: 30px;
  margin-bottom: 0;
  border-radius: 7px;
}

.cd-preset-article-name {
  grid-area: name;
}

.cd-preset-article-row > label:nth-of-type(2) {
  grid-area: code;
}

.cd-preset-article-row > label:nth-of-type(3) {
  grid-area: list;
}

.cd-preset-article-row > label:nth-of-type(4) {
  grid-area: discount;
}

.cd-preset-article-row > label:nth-of-type(5) {
  grid-area: markup;
}

.cd-preset-discount-stack {
  grid-area: stack;
}

.cd-preset-article-remove {
  grid-area: remove;
  align-self: center;
  border-radius: 8px;
}

.cd-col-preview {
  align-self: stretch;
  gap: 16px;
  margin: 16px 18px 16px 0;
  padding: 22px 34px 24px;
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(10, 12, 20, 0.16);
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.cd-preview-grain {
  opacity: .72;
}

.cd-preview-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding-bottom: 12px;
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

.cd-preview-title {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.cd-preview-kicker {
  max-width: none;
  font-size: 10.5px;
  line-height: 1;
  letter-spacing: .2em;
}

.cd-preview-title strong {
  color: #fff;
  font-size: 22px;
  line-height: 1.1;
}

.cd-preview-test {
  display: grid;
  grid-template-columns: auto;
  align-items: center;
  gap: 12px;
}

.cd-preview-test-wrap {
  min-width: 170px;
  min-height: 50px;
  padding: 0 16px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.055);
  border-color: rgba(255, 255, 255, 0.13);
}

.cd-preview-test-wrap input {
  width: 108px;
  font-size: 25px;
  font-weight: 760;
}

.cd-flow {
  display: grid;
  gap: 0;
  flex: 0 0 auto;
  overflow: visible;
  padding: 4px 0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.025);
}

.cd-flow-step {
  grid-template-columns: minmax(0, 1fr) minmax(126px, auto);
  gap: 18px;
  flex: 0 0 auto;
  min-height: 40px;
  padding: 8px 16px;
  border-bottom-color: rgba(255, 255, 255, 0.065);
}

.cd-flow-label {
  min-width: 0;
  color: rgba(250, 250, 250, 0.68);
  font-size: 14.5px;
  line-height: 1.25;
  letter-spacing: 0;
}

.cd-flow-label::before {
  width: 5px;
  height: 5px;
  flex-basis: 5px;
}

.cd-flow-value {
  min-width: 126px;
  color: rgba(255, 255, 255, 0.94);
  font-size: 18px;
  font-weight: 560;
  line-height: 1.2;
  text-align: right;
}

.cd-flow-start .cd-flow-label {
  color: rgba(255, 255, 255, 0.94);
}

.cd-flow-start .cd-flow-value {
  font-weight: 620;
}

.cd-final {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr);
  flex: 0 0 auto;
  gap: 10px 18px;
  margin-top: auto;
  padding: 15px 20px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.045);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: inset 2px 0 0 var(--cd-amber);
  overflow: hidden;
}

.cd-final::before {
  display: none;
}

.cd-final-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 18px;
  padding: 0;
}

.cd-final-row:first-child {
  grid-column: 1 / -1;
  padding-bottom: 6px;
  border-bottom: 0;
}

.cd-final-row strong {
  font-size: 34px;
  line-height: 1;
  letter-spacing: -.01em;
}

.cd-final-row span:first-child {
  color: rgba(250, 250, 250, 0.72);
  font-size: 10px;
  line-height: 1.3;
}

.cd-final-muted {
  grid-template-columns: 1fr;
  gap: 1px;
  min-height: 0;
  align-items: start;
  padding-top: 8px;
}

.cd-final-muted span:first-child {
  color: rgba(250, 250, 250, 0.5);
  font-size: 10.5px;
  line-height: 1.15;
}

.cd-final-muted span:last-child {
  color: rgba(250, 250, 250, 0.64);
  font-size: 12px;
  font-weight: 620;
  line-height: 1.15;
  text-align: left;
}

.cd-final-net {
  grid-column: 1 / -1;
  margin-top: 0;
  padding-top: 6px;
  border-top-color: rgba(255, 255, 255, 0.12);
}

.cd-final-net > span:first-child {
  font-size: 10px;
  line-height: 1.25;
  letter-spacing: .14em;
}

.cd-final-net-val {
  justify-content: flex-end;
  gap: 8px;
}

.cd-final-net-val strong {
  font-size: 25px;
  line-height: 1;
}

.cd-final-net-val em {
  padding: 2px 7px;
  border-radius: 6px;
  font-size: 10.5px;
}

.cd-final-rule {
  grid-column: 1 / -1;
  margin-top: 0;
  padding-top: 5px;
  border-top-color: rgba(255, 255, 255, 0.11);
  font-size: 9.5px;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ============================================================
   Company detail workspace - profile focused layout
   ============================================================ */
.cd-panel {
  width: min(1760px, calc(100vw - 44px));
  height: min(940px, calc(100vh - 44px));
}

.cd-body {
  grid-template-columns: minmax(0, 1fr) minmax(800px, 900px);
}

.cd-col-config {
  gap: 12px;
  padding: 18px;
  scroll-padding-top: 58px;
}

.cd-config-menu {
  position: sticky;
  top: 0;
  z-index: 20;
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 4px;
  max-width: 100%;
  margin: 0 0 10px;
  padding: 4px;
  border: 1px solid var(--cd-rule);
  border-radius: 8px;
  background: #fff;
  box-shadow:
    0 0 0 12px var(--cd-page),
    0 12px 22px rgba(245, 245, 246, 0.95),
    0 10px 22px rgba(10, 12, 20, 0.05);
  overflow: visible;
  scrollbar-width: none;
}

.cd-config-menu::-webkit-scrollbar { display: none; }

.cd-config-menu button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 13px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--cd-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 720;
  cursor: pointer;
  flex: 0 0 auto;
  transition: background .14s ease, color .14s ease;
}

.cd-config-menu button:first-child {
  border-radius: 6px;
}

.cd-config-menu button:last-child {
  border-radius: 6px;
}

.cd-config-menu button:hover {
  background: var(--cd-paper-2);
  color: var(--cd-ink);
}

.cd-config-menu button.is-active {
  position: relative;
  z-index: 1;
  border-radius: 6px;
  background: var(--cd-graphite);
  color: #fff;
  box-shadow: 0 8px 18px rgba(10, 12, 20, 0.12);
}

.cd-config-menu svg {
  width: 15px;
  height: 15px;
}

.cd-block,
.cd-preset-selector {
  gap: 12px;
  padding: 14px;
}

.cd-preset-selector {
  grid-column: 1 / -1;
  scroll-margin-top: 64px;
}

.cd-commercial,
.cd-block-discounts,
.cd-block-fiscal {
  scroll-margin-top: 64px;
}

.cd-section-hidden {
  display: none !important;
}

.cd-preset-options {
  gap: 8px;
}

.cd-preset-option {
  min-height: 72px;
  padding: 11px 12px;
}

.cd-preset-option small {
  line-height: 1.25;
}

.cd-preset-article-row {
  gap: 8px 10px;
  padding: 10px;
}

.cd-preset-fields input {
  height: 34px;
  font-size: 12.5px;
}

.cd-preset-fields label {
  gap: 5px;
}

.cd-preset-fields label > span:first-child {
  font-size: 9.5px;
}

.cd-commercial {
  grid-column: 1 / -1;
}

.cd-commercial-transport {
  padding: 10px 12px;
}

.cd-panel-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--cd-rule);
  border-radius: 7px;
  background: #fff;
  color: var(--cd-muted);
  font: inherit;
  font-size: 11.5px;
  font-weight: 760;
  cursor: pointer;
  transition: border-color .14s ease, color .14s ease, background .14s ease;
}

.cd-panel-toggle svg {
  width: 14px;
  height: 14px;
  transition: transform .14s ease;
}

.cd-panel-toggle:hover,
.cd-panel-toggle.is-active {
  border-color: var(--cd-graphite);
  color: var(--cd-ink);
}

.cd-panel-toggle.is-active svg {
  transform: rotate(180deg);
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon {
  min-height: 58px;
  height: auto;
  justify-content: flex-start;
  gap: 8px;
  padding: 12px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.is-detail-open {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: max-content max-content;
  align-content: start;
  grid-column: 1 / -1;
  gap: 12px;
  padding: 14px;
  scroll-margin-top: 58px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open {
  height: max-content;
  min-height: max-content;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible {
  grid-column: 1 / -1;
  min-height: auto;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-head,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  width: 100%;
  min-height: 0;
  align-items: center;
  gap: 10px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open .cd-block-head,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.is-detail-open .cd-block-head {
  min-height: 34px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-head {
  grid-template-columns: minmax(0, 1fr) auto;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-title > div,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-title > div {
  display: grid;
  gap: 2px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-title h4,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-title h4 {
  margin: 0;
  font-size: 13.5px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-meta,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-meta {
  display: block;
  max-width: none;
  overflow: hidden;
  color: var(--cd-muted);
  font-size: 11px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-stat {
  flex: initial;
  margin-left: 0;
  padding: 6px 9px;
  white-space: nowrap;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-stat .cd-stat-meta {
  display: none;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open .cd-block-stat .cd-stat-meta {
  display: inline;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-letter,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-letter {
  width: 28px;
  height: 28px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-panel-toggle,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-panel-toggle {
  display: inline-flex;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon:not(.is-detail-open) .cd-sheet,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon:not(.is-detail-open) .cd-fiscal-grid {
  display: none;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open .cd-sheet {
  display: grid;
  width: 100%;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open .cd-sheet-head,
.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open .cd-sheet-row {
  grid-template-columns: 34px minmax(0, 1fr) 112px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon.is-detail-open .cd-sheet-row {
  min-height: 48px;
  padding: 7px 12px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.is-detail-open .cd-fiscal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-variable-markup {
  display: none;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-variable-markup {
  display: grid;
  width: 100%;
  gap: 12px;
  padding: 12px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-variable-tiers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding-top: 0;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-tier-row,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-tier-last {
  grid-template-columns: 1fr;
  align-content: start;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--cd-rule);
  border-radius: 8px;
  background: #fff;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-tier-row > span {
  font-size: 11px;
  line-height: 1.2;
  min-width: 0;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-tier-row label,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.has-minimum-visible .cd-tier-last label {
  min-height: 34px;
  width: 100%;
}

.cd-col-preview {
  gap: 16px;
  margin: 16px 18px 16px 0;
  padding: 22px 34px 24px;
  border-radius: 8px;
}

.cd-preview-head {
  padding-bottom: 12px;
}

.cd-preview-test-wrap {
  min-width: 170px;
  min-height: 50px;
}

.cd-preview-test-wrap input {
  width: 108px;
  font-size: 25px;
}

.cd-flow-step {
  min-height: 40px;
  padding: 8px 16px;
}

.cd-flow-label {
  font-size: 14.5px;
}

.cd-flow-value {
  font-size: 18px;
}

.cd-final {
  padding: 15px 20px;
}

.cd-final-row strong {
  font-size: 34px;
}

.cd-final-net-val strong {
  font-size: 25px;
}

.cd-foot {
  padding: 13px 22px;
  background: var(--cd-card);
}

.cd-btn {
  border-radius: 8px;
}

@media (max-width: 1240px) {
  .cd-body {
    grid-template-columns: minmax(0, 1fr) minmax(430px, 560px);
  }

  .cd-col-config {
    grid-template-columns: 1fr;
  }

  .cd-block,
  .cd-preset-selector,
  .cd-commercial {
    grid-column: 1;
  }

  .cd-preset-options,
  .cd-commercial-grid,
  .cd-fiscal-grid {
    grid-template-columns: 1fr;
  }

  .cd-preset-article-row {
    grid-template-columns: 34px minmax(160px, 1.2fr) minmax(96px, 0.6fr) minmax(96px, 0.6fr) 34px;
    grid-template-areas:
      "idx name code code remove"
      "idx list discount markup remove"
      "idx stack stack stack remove";
  }
}

@media (max-width: 900px) {
  .cd-panel {
    width: calc(100vw - 20px);
    height: calc(100vh - 20px);
  }

  .cd-head {
    grid-template-columns: minmax(0, 1fr) 42px;
    padding: 16px;
  }

  .cd-body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    overflow: auto;
  }

  .cd-col-config {
    padding: 14px;
  }

  .cd-col-preview {
    margin: 0 14px 14px;
  }

  .cd-variable-markup-head,
  .cd-transport-vat-option {
    align-items: flex-start;
    flex-direction: column;
  }

  .cd-tier-row,
  .cd-tier-last {
    grid-template-columns: 1fr;
  }
}

/* Preset articles: compact, single-action empty state */
.cd-preset-selector {
  gap: 14px;
  padding: 14px;
  border-color: var(--cd-rule);
  background: var(--cd-card);
}

.cd-preset-selector-head {
  max-width: none;
  gap: 16px;
  padding-bottom: 0;
}

.cd-preset-kicker {
  display: inline;
  color: inherit;
  font: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.cd-preset-separator,
.cd-preset-copy {
  display: inline;
}

.cd-preset-selector-head h4 {
  margin: 0;
  font-size: 15px;
  line-height: 1.2;
}

.cd-preset-selector-head .cd-block-meta {
  max-width: 720px;
  font-size: 12px;
  line-height: 1.4;
}

/* Unified commercial block headers */
.cd-block > .cd-block-head,
.cd-block.cd-preset-selector > .cd-block-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: start;
  gap: 16px;
  width: 100%;
  min-height: 36px;
}

.cd-block > .cd-block-head .cd-block-title {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.cd-block > .cd-block-head .cd-block-title > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.cd-block > .cd-block-head .cd-block-letter {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  flex: 0 0 24px;
  border-radius: 7px;
  background: var(--cd-graphite);
  color: #fff;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}

.cd-block > .cd-block-head .cd-block-title h4 {
  margin: 0;
  color: var(--cd-ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.cd-block > .cd-block-head .cd-block-meta {
  display: block;
  max-width: 720px;
  margin: 2px 0 0;
  overflow: visible;
  color: var(--cd-muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-overflow: clip;
  white-space: normal;
}

.cd-block-discounts .cd-block-head {
  flex-wrap: nowrap;
}

.cd-block-discounts .cd-block-stat {
  justify-self: end;
  margin-left: 0;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-title,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-title {
  align-items: flex-start;
  gap: 10px;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-title h4,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-title h4 {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-meta,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-meta {
  max-width: 720px;
  overflow: visible;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-overflow: clip;
  white-space: normal;
}

.cd-col-config.is-profile-preset-view .cd-block-discounts.is-compact-icon .cd-block-letter,
.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon .cd-block-letter {
  width: 24px;
  height: 24px;
  flex-basis: 24px;
  border-radius: 7px;
  font-size: 12px;
  line-height: 1;
}

.cd-preset-fields {
  gap: 12px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid var(--cd-rule);
  border-radius: 8px;
  background: var(--cd-paper-2);
}

.cd-preset-fields-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding-top: 0;
}

.cd-preset-fields-head > div {
  min-width: 0;
}

.cd-preset-fields-head > div > span {
  color: var(--cd-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cd-preset-fields-head strong {
  display: block;
  margin-top: 2px;
  color: var(--cd-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
}

.cd-preset-add {
  min-height: 36px;
  padding: 0 13px;
  gap: 8px;
  border-color: var(--cd-rule);
  border-radius: 8px;
  background: var(--cd-card);
  color: var(--cd-ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.cd-preset-add span {
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.cd-preset-add:hover {
  border-color: var(--cd-graphite);
  background: var(--cd-graphite);
  color: #fff;
  box-shadow: none;
}

.cd-preset-add svg {
  width: 15px;
  height: 15px;
}

.cd-preset-empty {
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  min-height: 68px;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid var(--cd-rule);
  border-radius: 8px;
  background: var(--cd-card);
}

.cd-preset-empty > :is(i, svg) {
  width: 18px;
  height: 18px;
  justify-self: center;
  color: var(--cd-graphite);
}

.cd-preset-empty strong {
  font-size: 13.5px;
  line-height: 1.25;
}

.cd-preset-empty p {
  max-width: 760px;
  margin-top: 4px;
  color: var(--cd-muted);
  font-size: 12.5px;
  line-height: 1.4;
}

/* Discount sheet: always expose the full 5-level cascade */
.cd-block-discounts {
  grid-column: 1 / -1;
  gap: 12px;
}

.cd-block-fiscal:not(.is-compact-icon) {
  grid-column: 1 / -1;
}

.cd-block-discounts .cd-block-head {
  gap: 10px 12px;
}

.cd-block-discounts .cd-block-stat {
  margin-top: 0;
}

.cd-block-discounts .cd-sheet {
  border-radius: 8px;
}

.cd-block-discounts .cd-sheet-head,
.cd-block-discounts .cd-sheet-row {
  grid-template-columns: 36px minmax(0, 1fr) 104px;
}

.cd-block-discounts .cd-sheet-head {
  min-height: 34px;
  padding: 7px 12px;
  font-size: 9.5px;
  letter-spacing: 0.12em;
}

.cd-block-discounts .cd-sheet-row {
  min-height: 44px;
  padding: 6px 12px;
}

.cd-block-discounts .cd-sheet-lbl {
  font-size: 13px;
}

.cd-block-discounts .cd-sheet-input {
  min-height: 32px;
  padding: 3px 8px;
  border-radius: 8px;
}

.cd-block-discounts .cd-sheet-input input {
  width: 50px;
  height: 28px;
  min-height: 0;
  padding: 0;
  font-size: 14px;
}

.cd-fiscal-grid.cd-sheet {
  display: flex;
  grid-template-columns: none;
  gap: 0;
  width: 100%;
  border-radius: 8px;
}

.cd-col-config.is-profile-preset-view .cd-block-fiscal.is-compact-icon.is-detail-open .cd-fiscal-grid.cd-sheet {
  display: flex;
  grid-template-columns: none;
  gap: 0;
}

.cd-fiscal-grid .cd-sheet-head,
.cd-fiscal-grid .cd-sheet-row {
  grid-template-columns: 36px minmax(0, 1fr) 104px;
}

.cd-fiscal-grid .cd-sheet-head {
  min-height: 34px;
  padding: 7px 12px;
  font-size: 9.5px;
  letter-spacing: 0.12em;
}

.cd-fiscal-grid .cd-bigfield {
  position: relative;
  display: grid;
  flex: 0 0 auto;
  align-items: center;
  justify-content: initial;
  min-height: 44px;
  gap: 0;
  padding: 6px 12px;
  border: 0;
  border-bottom: 1px solid var(--cd-rule-soft);
  border-radius: 0;
  background: #fff;
  overflow: visible;
  transition: background .12s ease;
}

.cd-fiscal-grid .cd-bigfield:hover {
  background: var(--cd-paper-2);
}

.cd-fiscal-grid .cd-sheet-row:last-child {
  border-bottom: 0;
}

.cd-fiscal-grid .cd-sheet-lbl {
  font-size: 13px;
}

.cd-fiscal-grid .cd-sheet-input {
  min-height: 32px;
  padding: 3px 8px;
  border-radius: 8px;
}

.cd-fiscal-grid .cd-sheet-input input {
  width: 50px;
  height: 28px;
  min-height: 0;
  padding: 0;
  font-size: 14px;
}

.cd-preset-article-list {
  gap: 12px;
}

.cd-preset-article-row {
  grid-template-columns:
    32px
    minmax(150px, 1.2fr)
    minmax(118px, 0.78fr)
    minmax(108px, 0.68fr)
    34px;
  grid-template-areas:
    "idx name name code remove"
    "idx list discount markup remove"
    "idx stack stack stack remove";
  align-items: start;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
  padding: 14px;
  border-color: var(--cd-rule);
  border-radius: 8px;
  background: var(--cd-card);
  box-shadow: none;
}

.cd-preset-article-row > label {
  min-width: 0;
}

.cd-preset-article-row input,
.cd-preset-discount-stack,
.cd-preset-discount-stack > div,
.cd-preset-money,
.cd-preset-percent {
  box-sizing: border-box;
  min-width: 0;
}

.cd-preset-article-index {
  align-self: start;
  width: 30px;
  height: 30px;
  margin-top: 23px;
  background: var(--cd-paper-2);
  color: var(--cd-muted);
}

.cd-preset-article-remove {
  align-self: start;
  margin-top: 22px;
}

.cd-preset-discount-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  padding: 12px;
  border: 1px solid var(--cd-rule);
  border-radius: 8px;
  background: var(--cd-paper-2);
}

.cd-preset-discount-stack > span {
  align-self: center;
  color: var(--cd-muted);
  font-size: 10px;
  line-height: 1.3;
}

.cd-preset-discount-stack > div {
  display: grid;
  grid-template-columns: repeat(5, minmax(58px, 1fr));
  gap: 8px;
  width: 100%;
  max-width: 520px;
}

.cd-preset-discount-stack label {
  grid-area: auto;
  min-width: 0;
  gap: 5px;
}

.cd-preset-discount-stack label > span:first-child {
  color: var(--cd-muted);
  font-size: 10px;
  line-height: 1;
  text-align: left;
}

.cd-preset-discount-stack input {
  height: 36px;
  padding-left: 8px;
  padding-right: 24px;
  text-align: right;
}

@media (max-width: 640px) {
  .cd-body {
    display: block;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    align-content: start;
    overflow: auto;
  }

  .cd-col-config {
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    overflow: visible;
  }

  .cd-col-config.is-listino-view {
    overflow: visible;
  }

  .cd-config-menu {
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
  }

  .cd-preset-selector {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .cd-preset-fields-head {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .cd-preset-add {
    width: 100%;
  }

  .cd-preset-empty {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .cd-preset-empty > :is(i, svg) {
    justify-self: start;
  }

  .cd-preset-article-row {
    grid-template-columns: 32px minmax(0, 1fr) 34px;
    grid-template-areas:
      "idx name remove"
      ". code ."
      ". list ."
      ". discount ."
      ". markup ."
      "stack stack stack";
    gap: 10px;
    padding: 12px;
  }

  .cd-preset-article-index,
  .cd-preset-article-remove {
    margin-top: 22px;
  }

  .cd-preset-discount-stack {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 10px;
  }

  .cd-preset-discount-stack > div {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .cd-preset-discount-stack input {
    height: 34px;
    padding-left: 7px;
    padding-right: 20px;
    font-size: 12px;
  }

  .cd-preset-discount-stack .cd-preset-percent em {
    right: 6px;
    font-size: 11px;
  }

  .cd-col-preview {
    position: relative;
    z-index: 0;
    width: auto;
    min-height: 0;
    margin: 0 14px 14px;
    padding: 24px 20px;
  }

  .cd-preview-head {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 16px;
  }

  .cd-preview-title strong {
    font-size: 19px;
  }

  .cd-preview-test {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .cd-preview-test-wrap {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    justify-content: space-between;
  }

  .cd-flow-step {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
    padding: 10px 12px;
  }

  .cd-final {
    grid-template-columns: 1fr;
  }

  .cd-final-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .cd-final-row strong,
  .cd-final-net-val {
    justify-self: start;
  }

  .cd-foot {
    align-items: stretch;
    flex-direction: column;
  }

  .cd-foot-right {
    justify-content: stretch;
  }

  .cd-foot-right .cd-btn {
    justify-content: center;
    flex: 1 1 0;
  }

  .cd-settings-panel {
    left: 14px;
    right: 14px;
    bottom: 118px;
    width: auto;
    max-height: calc(100vh - 170px);
  }

  .cd-settings-add-env {
    grid-template-columns: 1fr;
  }
}

.quote-sheet {
  overflow: visible;
}

.quote-sheet-wrap {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.quote-sheet-toolbar {
  position: relative;
  z-index: 12;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 0 2px;
}

.quote-sheet-toolbar-title {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.quote-sheet-toolbar-title span {
  color: #777780;
  font-size: 10px;
  font-weight: 780;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.quote-sheet-toolbar-title strong {
  color: #18181b;
  font-size: 15px;
  font-weight: 760;
  letter-spacing: 0;
}

.quote-sheet-head,
.quote-sheet-row {
  grid-template-columns: 66px minmax(112px, .72fr) minmax(340px, 2.4fr) 74px 172px 92px 150px 56px;
}

.quote-sheet-head {
  position: relative;
  z-index: 4;
}

.quote-sheet-body {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border-radius: 0 0 14px 14px;
}

.quote-sheet-head > .qs-head-actions {
  z-index: 10;
  overflow: visible;
  justify-content: center;
  padding: 0;
}

.qs-head-actions {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  overflow: visible;
}

.qs-c-select {
  justify-content: center;
  gap: 7px;
}

.qs-c-select-head {
  color: #767780;
}

.qs-index-number {
  min-width: 20px;
  text-align: left;
}

.qs-row-check {
  position: relative;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
}

button.qs-row-check {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}

.qs-row-check input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  opacity: 0;
  cursor: pointer;
}

.qs-check-box {
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  border: 1px solid #d7d7de;
  border-radius: 5px;
  background: #fff;
  transition: border-color .12s ease, background .12s ease, box-shadow .12s ease;
}

.qs-check-box::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 2px;
  background: #fff;
  transform: scale(0);
  transition: transform .12s ease;
}

.qs-row-check:hover .qs-check-box {
  border-color: #b8b8c0;
}

.qs-row-check input:checked + .qs-check-box {
  border-color: #1d1d20;
  background: #1d1d20;
}

.qs-row-check input:checked + .qs-check-box::after {
  transform: scale(1);
}

.qs-row-check input:focus-visible + .qs-check-box {
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .08);
}

.qs-row-check[aria-pressed="true"] .qs-check-box {
  border-color: #1d1d20;
  background: #1d1d20;
}

.qs-row-check[aria-pressed="true"] .qs-check-box::after {
  transform: scale(1);
}

button.qs-row-check:focus-visible {
  outline: none;
}

button.qs-row-check:focus-visible .qs-check-box {
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .08);
}

.quote-sheet-row.is-selected,
.quote-sheet-row.is-selected:hover {
  background: #fbfaf8;
}

.qs-line-transport {
  color: #8a6428;
}

.qs-bulk-trigger {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #777780;
  background: transparent;
  cursor: pointer;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}

.qs-bulk-trigger svg,
.qs-bulk-trigger i {
  width: 18px;
  height: 18px;
  stroke-width: 2;
}

.qs-bulk-trigger:hover,
.qs-head-actions.is-open .qs-bulk-trigger {
  color: #18181b;
  background: #f1f1f2;
  border-color: #e7e7eb;
}

.qs-bulk-trigger:focus-visible {
  outline: none;
  color: #18181b;
  border-color: #c9c9d0;
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .07);
}

.qs-bulk-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 306px;
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid #e1dfda;
  border-radius: 14px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 22px 60px rgba(24, 24, 27, .16);
  text-align: left;
  font-feature-settings: "tnum" 1;
  text-transform: none;
  letter-spacing: 0;
}

.qs-bulk-menu.is-hidden {
  display: none;
}

.qs-bulk-title {
  display: grid;
  gap: 3px;
  padding: 2px 2px 0;
}

.qs-bulk-title strong {
  color: #18181b;
  font-size: 13px;
  font-weight: 760;
  letter-spacing: 0;
}

.qs-bulk-title small {
  color: #74747b;
  font-size: 11.5px;
  font-weight: 560;
  line-height: 1.35;
  letter-spacing: 0;
}

.qs-bulk-amount {
  height: 48px;
  display: grid;
  grid-template-columns: 1fr minmax(70px, auto) auto;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid #e8e8ec;
  border-radius: 12px;
  background: #fbfbfc;
}

.qs-bulk-amount span {
  color: #767780;
  font-size: 10px;
  font-weight: 760;
  text-transform: uppercase;
  letter-spacing: .16em;
}

.qs-bulk-amount input {
  min-width: 0;
  width: 100%;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
  color: #18181b;
  font: inherit;
  font-size: 18px;
  font-weight: 760;
  text-align: right;
}

.qs-bulk-amount input:hover,
.qs-bulk-amount input:focus,
.qs-bulk-amount input:focus-visible {
  border-color: transparent;
  outline: 0;
  background: transparent;
  box-shadow: none;
}

.qs-bulk-amount input::placeholder {
  color: #9a9aa2;
}

.qs-bulk-amount:focus-within {
  border-color: #e1dfda;
  background: #fff;
  box-shadow: none;
}

.qs-bulk-amount em {
  color: #777780;
  font-style: normal;
  font-size: 14px;
  font-weight: 720;
}

.qs-bulk-action {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 0 12px;
  color: #18181b;
  background: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 720;
  text-align: left;
  cursor: pointer;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}

.qs-bulk-action svg,
.qs-bulk-action i {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: #8a6428;
  stroke-width: 2;
}

.qs-bulk-action:hover {
  background: #f6f6f7;
  border-color: #ececef;
}

.qs-bulk-action:focus-visible {
  outline: none;
  border-color: #c9c9d0;
  box-shadow: 0 0 0 3px rgba(24, 24, 27, .07);
}

.qs-bulk-action:disabled {
  cursor: not-allowed;
  color: #a1a1aa;
  background: #fafafa;
}

.qs-bulk-action:disabled svg,
.qs-bulk-action:disabled i {
  color: #b7b7bd;
}

/* Cash closure sheet */
.workspace.workspace-cash {
  background: #f2f2f3;
}

.cash-shell {
  width: min(1120px, 100%);
  margin: 0 auto;
  display: grid;
  gap: 16px;
}

.cash-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.cash-toolbar h2 {
  margin: 2px 0 0;
  color: var(--text);
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: 0;
}

.cash-toolbar-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.cash-date-picker {
  min-width: 164px;
  gap: 4px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
}

.cash-date-picker input {
  min-height: 42px;
  background: #fff;
}

.cash-status {
  min-height: 20px;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 650;
}

.cash-status.is-dirty {
  color: #8a6300;
}

.cash-status.is-success {
  color: #1f7a44;
}

.cash-status.is-error {
  color: #9a1f2b;
}

.cash-sheet {
  margin: 0;
}

.cash-paper {
  width: min(920px, 100%);
  margin: 0 auto;
  border: 1px solid #3f3f46;
  background: #fff;
  color: #45454c;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.cash-paper input,
.cash-paper textarea {
  min-height: 30px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #45454c;
  font-size: 14px;
  font-weight: 650;
  text-align: center;
}

.cash-paper input:focus,
.cash-paper textarea:focus {
  border-color: transparent;
  box-shadow: inset 0 -2px 0 #18181b;
}

.cash-meta-row {
  display: grid;
  grid-template-columns: minmax(180px, .95fr) minmax(240px, 1.35fr) minmax(160px, .8fr);
  border-bottom: 1px solid #3f3f46;
}

.cash-meta-row label {
  min-height: 44px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 6px 12px;
  border-right: 1px solid #3f3f46;
}

.cash-meta-row label:last-child {
  border-right: 0;
}

.cash-meta-row span,
.cash-withdrawals span,
.cash-bottom > label > span,
.cash-total span {
  color: #49494f;
  font-size: 17px;
  font-weight: 850;
}

.cash-meta-row input {
  text-decoration: underline;
}

.cash-summary-block {
  padding: 12px 0;
  border-bottom: 1px solid #3f3f46;
}

.cash-line,
.cash-entry-row {
  display: grid;
  grid-template-columns: minmax(230px, 1fr) 28px minmax(120px, .6fr) minmax(150px, .7fr);
  align-items: center;
  min-height: 34px;
}

.cash-summary-line label {
  justify-self: center;
  color: #45454c;
  font-size: 14px;
  font-weight: 650;
}

.cash-summary-line input,
.cash-entry-row input {
  height: 100%;
  border-left: 1px solid #3f3f46;
}

.cash-euro,
.cash-row-mark {
  align-self: stretch;
  display: grid;
  place-items: center;
  color: #45454c;
  font-size: 15px;
  font-weight: 700;
}

.cash-block {
  border-bottom: 1px solid #3f3f46;
}

.cash-block h3 {
  min-height: 38px;
  display: grid;
  place-items: center;
  margin: 0;
  border-bottom: 1px solid #3f3f46;
  color: #45454c;
  font-size: 18px;
  font-weight: 850;
  letter-spacing: 0;
}

.cash-entry-row {
  border-bottom: 1px solid #3f3f46;
}

.cash-entry-row:last-child {
  border-bottom: 0;
}

.cash-entry-row .cash-desc {
  text-align: center;
}

.cash-entry-row .cash-note {
  border-left: 1px solid #3f3f46;
  text-align: center;
}

.cash-withdrawals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid #3f3f46;
}

.cash-withdrawals label {
  min-height: 42px;
  display: grid;
  grid-template-columns: auto 24px minmax(90px, 1fr);
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  border-right: 1px solid #3f3f46;
}

.cash-withdrawals label:last-child {
  border-right: 0;
}

.cash-withdrawals em,
.cash-total em {
  color: #45454c;
  font-style: normal;
  font-weight: 800;
}

.cash-withdrawals input {
  text-align: right;
}

.cash-bottom {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(320px, .95fr);
  min-height: 62px;
}

.cash-notes {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 8px;
  border-right: 1px solid #3f3f46;
}

.cash-notes textarea {
  min-height: 52px;
  padding: 4px;
  text-align: left;
  resize: vertical;
}

.cash-total {
  display: grid;
  grid-template-columns: 1fr 28px minmax(120px, .8fr);
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
}

.cash-total span {
  justify-self: center;
}

.cash-total strong {
  justify-self: end;
  color: #45454c;
  font-size: 16px;
  font-weight: 850;
}

.cash-total strong.is-negative {
  color: #4b5563;
}

.cash-total strong.is-positive {
  color: #1f7a44;
}

@media (max-width: 860px) {
  .cash-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .cash-toolbar-actions {
    justify-content: stretch;
  }

  .cash-toolbar-actions > * {
    flex: 1 1 150px;
  }

  .cash-meta-row,
  .cash-bottom,
  .cash-withdrawals {
    grid-template-columns: 1fr;
  }

  .cash-meta-row label,
  .cash-withdrawals label,
  .cash-notes {
    border-right: 0;
    border-bottom: 1px solid #3f3f46;
  }

  .cash-line,
  .cash-entry-row {
    grid-template-columns: minmax(130px, 1fr) 24px minmax(92px, .65fr);
  }

  .cash-row-mark,
  .cash-entry-row .cash-note {
    grid-column: 1 / -1;
    min-height: 30px;
    border-top: 1px solid #3f3f46;
    border-left: 0;
  }
}

.cash-shell,
.cash-history-shell {
  width: min(1180px, 100%);
}

.cash-toolbar,
.cash-history-toolbar {
  padding: 18px;
  border: 1px solid #e4e4e7;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}

.cash-history-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.cash-history-toolbar h2,
.cash-toolbar h2 {
  margin: 2px 0 0;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: 0;
}

.cash-board {
  display: grid;
  gap: 14px;
}

.cash-identity,
.cash-panel,
.cash-movement-panel,
.cash-finish-panel {
  border: 1px solid #e4e4e7;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}

.cash-identity {
  display: grid;
  grid-template-columns: minmax(210px, .9fr) minmax(360px, 1.4fr) minmax(180px, .7fr);
  align-items: stretch;
  overflow: hidden;
}

.cash-identity-main,
.cash-meta-grid,
.cash-hero-total {
  padding: 18px;
}

.cash-identity-main {
  display: grid;
  align-content: center;
  gap: 4px;
  background: #18181b;
  color: #fff;
}

.cash-identity-main span,
.cash-panel header span,
.cash-movement-panel header span,
.cash-money-tile span,
.cash-notes span,
.cash-final-total span,
.cash-history-kpi span,
.cash-meta-grid span,
.cash-hero-total span {
  color: #71717a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.cash-identity-main span {
  color: #d4d4d8;
}

.cash-identity-main h3 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: 0;
}

.cash-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  border-right: 1px solid #e4e4e7;
}

.cash-meta-grid div {
  display: grid;
  align-content: center;
  gap: 5px;
  min-height: 74px;
  padding: 12px;
  border: 1px solid #ececef;
  border-radius: 7px;
  background: #fafafa;
}

.cash-meta-grid strong {
  color: #18181b;
  font-size: 15px;
  font-weight: 850;
}

.cash-hero-total {
  display: grid;
  align-content: center;
  justify-items: end;
  gap: 6px;
  background: #f4f4f5;
}

.cash-hero-total strong,
.cash-final-total strong {
  color: #18181b;
  font-size: 28px;
  line-height: 1;
  font-weight: 900;
}

.cash-metrics,
.cash-history-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.cash-metric,
.cash-history-kpi {
  display: grid;
  gap: 10px;
  min-height: 92px;
  padding: 14px;
  border: 1px solid #e4e4e7;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}

.cash-metric span,
.cash-history-kpi span {
  display: flex;
  align-items: center;
  gap: 7px;
}

.cash-metric svg,
.cash-history-kpi svg {
  width: 15px;
  height: 15px;
}

.cash-metric strong,
.cash-history-kpi strong {
  color: #18181b;
  font-size: 21px;
  line-height: 1.05;
  font-weight: 900;
}

.cash-metric.is-total {
  border-color: #18181b;
}

.cash-panel header,
.cash-movement-panel header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid #e8e8eb;
}

.cash-panel h3,
.cash-movement-panel h3 {
  margin: 2px 0 0;
  color: #18181b;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: 0;
}

.cash-panel header > strong,
.cash-movement-panel header > strong {
  color: #18181b;
  font-size: 16px;
  font-weight: 900;
  white-space: nowrap;
}

.cash-summary-grid,
.cash-withdrawal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
}

.cash-withdrawal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cash-withdrawal-panel {
  width: min(640px, 100%);
  justify-self: start;
}

.cash-withdrawal-panel header {
  min-height: 58px;
}

.cash-withdrawal-panel .cash-withdrawal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 10px;
}

.cash-withdrawal-panel .cash-money-tile {
  min-height: 60px;
  grid-template-columns: minmax(0, 1fr) minmax(104px, 132px);
  align-items: end;
}

.cash-withdrawal-panel .cash-money-tile span {
  grid-column: 1 / -1;
}

.cash-withdrawal-panel .cash-money-tile input {
  grid-column: 2;
  min-height: 32px;
  padding: 6px 8px;
}

.cash-money-tile {
  display: grid;
  grid-template-columns: auto 22px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 82px;
  padding: 12px;
  border: 1px solid #e8e8eb;
  border-radius: 7px;
  background: #fafafa;
}

.cash-money-tile span {
  grid-column: 1 / -1;
}

.cash-money-tile strong,
.cash-money-tile em {
  color: #71717a;
  font-style: normal;
  font-size: 15px;
  font-weight: 850;
}

.cash-money-tile input,
.cash-entry-row input,
.cash-entry-row select,
.cash-notes textarea {
  min-height: 38px;
  border: 1px solid #e4e4e7;
  border-radius: 7px;
  background: #fff;
  color: #18181b;
  font-size: 14px;
  font-weight: 750;
  box-shadow: none;
}

.cash-money-tile input {
  min-width: 0;
  padding: 8px 10px;
  text-align: right;
}

.cash-money-tile input:focus,
.cash-entry-row input:focus,
.cash-entry-row select:focus,
.cash-notes textarea:focus {
  border-color: #18181b;
  box-shadow: 0 0 0 3px rgba(24,24,27,.07);
}

.cash-movement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.cash-entry-head,
.cash-entry-row {
  display: grid;
  grid-template-columns: minmax(120px, 1.1fr) minmax(92px, .7fr) minmax(110px, .8fr);
  gap: 8px;
  align-items: center;
}

.cash-entry-head {
  padding: 10px 12px 0;
  color: #a1a1aa;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.cash-rows {
  display: grid;
  gap: 7px;
  padding: 10px 12px 14px;
}

.cash-entry-row {
  min-height: auto;
  border: 0;
}

.cash-entry-row input,
.cash-entry-row select {
  height: 38px;
  padding: 8px 9px;
  border-left: 1px solid #e4e4e7;
  text-align: left;
}

.cash-entry-row .cash-amount {
  text-align: right;
}

.cash-entry-row .cash-note {
  border-left: 1px solid #e4e4e7;
  text-align: left;
}

.cash-entry-row select.cash-note {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 20px;
  background-color: #fff;
  background-image: linear-gradient(45deg, transparent 50%, #71717a 50%), linear-gradient(135deg, #71717a 50%, transparent 50%);
  background-position: calc(100% - 11px) 50%, calc(100% - 7px) 50%;
  background-repeat: no-repeat;
  background-size: 4px 4px, 4px 4px;
  color: #18181b;
  font-size: 12px;
}

.cash-finish-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, .45fr);
  gap: 0;
  overflow: hidden;
}

.cash-notes {
  display: grid;
  gap: 8px;
  padding: 14px;
  border-right: 1px solid #e4e4e7;
}

.cash-notes textarea {
  min-height: 104px;
  padding: 10px;
  resize: vertical;
  text-align: left;
}

.cash-final-total {
  display: grid;
  align-content: center;
  justify-items: end;
  gap: 8px;
  padding: 18px;
  background: #18181b;
}

.cash-final-total span,
.cash-final-total strong {
  color: #fff;
}

.cash-hero-total strong.is-negative,
.cash-final-total strong.is-negative,
.cash-metric strong.is-negative,
.cash-panel header > strong.is-negative,
.cash-movement-panel header > strong.is-negative,
.cash-history-row strong.is-negative {
  color: #6b7280;
}

.cash-final-total strong.is-negative {
  color: #d1d5db;
}

.cash-hero-total strong.is-positive,
.cash-final-total strong.is-positive,
.cash-metric strong.is-positive,
.cash-panel header > strong.is-positive,
.cash-movement-panel header > strong.is-positive,
.cash-history-row strong.is-positive {
  color: #1f7a44;
}

.cash-final-total strong.is-positive {
  color: #86efac;
}

.cash-history-shell {
  margin: 0 auto;
  display: grid;
  gap: 16px;
}

.cash-history-list {
  border: 1px solid #e4e4e7;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.cash-summary-tile {
  grid-template-columns: minmax(0, 1fr);
}

.cash-history-table {
  display: grid;
}

.cash-history-head,
.cash-history-row {
  display: grid;
  grid-template-columns: minmax(130px, .9fr) minmax(90px, .45fr) minmax(120px, .7fr) 104px;
  gap: 10px;
  align-items: center;
  padding: 12px 14px;
}

.cash-history-head {
  background: #fafafa;
  color: #71717a;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.cash-history-row {
  border-top: 1px solid #ececef;
}

.cash-history-row > strong {
  color: #18181b;
}

.cash-history-row span {
  color: #52525b;
  font-weight: 650;
}

.cash-history-row button {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #e4e4e7;
  border-radius: 7px;
  background: #fff;
  color: #18181b;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.cash-history-row button:hover {
  background: #f4f4f5;
}

.cash-history-row button svg {
  width: 14px;
  height: 14px;
}

.cash-history-empty {
  padding: 28px;
  color: #71717a;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 1120px) {
  .cash-identity,
  .cash-movement-grid,
  .cash-summary-grid {
    grid-template-columns: 1fr 1fr;
  }

  .cash-hero-total {
    grid-column: 1 / -1;
    justify-items: start;
  }

  .cash-metrics,
  .cash-history-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .cash-history-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .cash-identity,
  .cash-meta-grid,
  .cash-metrics,
  .cash-summary-grid,
  .cash-withdrawal-grid,
  .cash-movement-grid,
  .cash-finish-panel,
  .cash-history-kpis {
    grid-template-columns: 1fr;
  }

  .cash-withdrawal-panel {
    width: 100%;
  }

  .cash-withdrawal-panel .cash-withdrawal-grid {
    grid-template-columns: 1fr;
  }

  .cash-meta-grid {
    border-right: 0;
  }

  .cash-notes {
    border-right: 0;
    border-bottom: 1px solid #e4e4e7;
  }

  .cash-history-head {
    display: none;
  }

  .cash-history-row {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .cash-history-row button {
    justify-self: start;
  }
}

/* Minimal cash visual pass */
.workspace.workspace-cash {
  background: #fafafa;
}

.cash-shell,
.cash-history-shell {
  gap: 12px;
}

.cash-toolbar,
.cash-history-toolbar {
  padding: 0 0 14px;
  border: 0;
  border-bottom: 1px solid #e7e7ea;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cash-toolbar h2,
.cash-history-toolbar h2 {
  font-size: 22px;
  font-weight: 760;
}

.cash-status {
  min-height: 18px;
  font-size: 11px;
  font-weight: 650;
}

.cash-board {
  gap: 10px;
}

.cash-identity,
.cash-panel,
.cash-movement-panel,
.cash-finish-panel,
.cash-metric,
.cash-history-kpi,
.cash-history-list {
  border-color: #e7e7ea;
  border-radius: 6px;
  box-shadow: none;
}

.cash-identity {
  grid-template-columns: minmax(220px, .9fr) minmax(360px, 1.4fr) minmax(190px, .6fr);
  background: #fff;
}

.cash-identity-main,
.cash-meta-grid,
.cash-hero-total {
  padding: 14px;
}

.cash-identity-main {
  background: #fff;
  color: #18181b;
  border-right: 1px solid #ececef;
}

.cash-identity-main span {
  color: #8a8a93;
}

.cash-identity-main h3 {
  font-size: 18px;
  font-weight: 760;
}

.cash-meta-grid {
  gap: 0;
  border-right: 1px solid #ececef;
}

.cash-meta-grid div {
  min-height: 58px;
  padding: 8px 12px;
  border: 0;
  border-right: 1px solid #eeeeef;
  border-radius: 0;
  background: transparent;
}

.cash-meta-grid div:last-child {
  border-right: 0;
}

.cash-meta-grid strong {
  font-size: 14px;
  font-weight: 760;
}

.cash-hero-total {
  background: #fff;
}

.cash-hero-total strong,
.cash-final-total strong {
  font-size: 24px;
  font-weight: 820;
}

.cash-metrics,
.cash-history-kpis {
  gap: 8px;
}

.cash-metric,
.cash-history-kpi {
  min-height: 72px;
  gap: 6px;
  padding: 12px;
  background: #fff;
}

.cash-metric svg,
.cash-history-kpi svg {
  display: none;
}

.cash-metric strong,
.cash-history-kpi strong {
  font-size: 18px;
  font-weight: 780;
}

.cash-metric.is-total {
  border-color: #d8d8dd;
}

.cash-panel header,
.cash-movement-panel header {
  padding: 12px 14px;
  border-bottom-color: #eeeeef;
}

.cash-panel h3,
.cash-movement-panel h3 {
  font-size: 14px;
  font-weight: 760;
}

.cash-panel header > strong,
.cash-movement-panel header > strong {
  font-size: 14px;
  font-weight: 780;
}

.cash-summary-grid,
.cash-withdrawal-grid {
  gap: 8px;
  padding: 12px;
}

.cash-money-tile {
  min-height: 72px;
  gap: 6px;
  padding: 10px;
  border-color: #eeeeef;
  border-radius: 6px;
  background: #fff;
}

.cash-money-tile input,
.cash-entry-row input,
.cash-entry-row select,
.cash-notes textarea {
  min-height: 34px;
  border-color: #e7e7ea;
  border-radius: 5px;
  font-size: 13px;
  font-weight: 650;
}

.cash-movement-grid {
  gap: 10px;
}

.cash-entry-head,
.cash-entry-row {
  grid-template-columns: minmax(120px, 1.15fr) minmax(86px, .62fr) minmax(100px, .78fr);
  gap: 6px;
}

.cash-entry-head {
  padding: 9px 10px 0;
}

.cash-rows {
  gap: 6px;
  padding: 8px 10px 12px;
}

.cash-entry-row input,
.cash-entry-row select {
  height: 34px;
  padding: 7px 8px;
}

.cash-entry-row select.cash-note {
  padding-right: 20px;
  background-position: calc(100% - 11px) 50%, calc(100% - 7px) 50%;
}

.cash-finish-panel {
  background: #fff;
}

.cash-notes {
  padding: 12px;
}

.cash-notes textarea {
  min-height: 86px;
}

.cash-final-total {
  padding: 16px;
  background: #fff;
  border-left: 1px solid #ececef;
}

.cash-final-total span {
  color: #71717a;
}

.cash-final-total strong {
  color: #18181b;
}

.cash-final-total strong.is-negative {
  color: #6b7280;
}

.cash-final-total strong.is-positive {
  color: #1f7a44;
}

.cash-finish-panel {
  width: min(760px, 100%);
  justify-self: end;
  grid-template-columns: minmax(0, 1fr) minmax(170px, 190px);
}

.cash-notes {
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
}

.cash-notes textarea {
  min-height: 72px;
  line-height: 1.35;
}

.cash-final-total {
  justify-items: end;
  align-content: center;
  gap: 10px;
  padding: 16px 18px;
  background: #fafafa;
}

.cash-final-total span {
  font-size: 10px;
}

.cash-final-total strong {
  font-size: 28px;
}

@media (max-width: 760px) {
  .cash-finish-panel {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .cash-final-total {
    justify-items: start;
    border-left: 0;
    border-top: 1px solid #ececef;
  }
}

.cash-history-head,
.cash-history-row {
  padding: 11px 12px;
}

.cash-history-head {
  background: #fff;
  border-bottom: 1px solid #ececef;
}

.cash-history-row {
  border-top: 0;
  border-bottom: 1px solid #f0f0f1;
}

.cash-history-row:last-child {
  border-bottom: 0;
}

.cash-history-row button {
  min-height: 32px;
  border-radius: 5px;
  background: #fafafa;
}

/* Cash sheet whole-layout refresh */
.workspace.workspace-cash {
  background: #f7f7f8;
}

.cash-shell {
  width: min(1240px, 100%);
  gap: 14px;
}

.cash-toolbar {
  align-items: center;
  padding: 0 0 12px;
  border-bottom-color: #dedee3;
}

.cash-toolbar h2 {
  font-size: 21px;
  font-weight: 780;
}

.cash-toolbar-actions {
  gap: 7px;
}

.cash-date-picker input {
  min-height: 38px;
  border-color: #e3e3e7;
  border-radius: 6px;
}

.cash-status {
  color: #707078;
  font-size: 11px;
}

.cash-board {
  gap: 12px;
}

.cash-identity,
.cash-panel,
.cash-movement-panel,
.cash-finish-panel {
  border-color: #e1e1e6;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}

.cash-identity {
  min-height: 82px;
  grid-template-columns: minmax(230px, 1fr) minmax(310px, 1.15fr) minmax(190px, .68fr);
}

.cash-identity-main {
  padding: 15px 16px;
  border-right: 1px solid #ececf0;
  border-left: 4px solid #1f7a44;
}

.cash-identity-main span,
.cash-meta-grid span,
.cash-hero-total span,
.cash-panel header span,
.cash-movement-panel header span,
.cash-money-tile span,
.cash-notes span,
.cash-final-total span {
  color: #777780;
  font-size: 10px;
  font-weight: 820;
  letter-spacing: .04em;
}

.cash-identity-main h3 {
  margin-top: 3px;
  font-size: 19px;
  font-weight: 800;
}

.cash-meta-grid {
  border-right: 1px solid #ececf0;
}

.cash-meta-grid div {
  min-height: 56px;
  padding: 10px 13px;
}

.cash-meta-grid strong {
  font-size: 15px;
  font-weight: 790;
}

.cash-hero-total {
  padding: 15px 16px;
  background: #18181b;
}

.cash-hero-total span,
.cash-hero-total strong {
  color: #fff;
}

.cash-hero-total span {
  opacity: .72;
}

.cash-hero-total strong {
  font-size: 25px;
  font-weight: 860;
}

.cash-panel header,
.cash-movement-panel header {
  min-height: 54px;
  padding: 12px 14px;
  border-bottom-color: #ececf0;
}

.cash-panel h3,
.cash-movement-panel h3 {
  font-size: 14px;
  font-weight: 790;
}

.cash-panel header > strong,
.cash-movement-panel header > strong {
  font-size: 14px;
  font-weight: 820;
}

.cash-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  padding: 0;
}

.cash-summary-tile {
  min-height: 74px;
  padding: 12px 14px;
  border: 0;
  border-right: 1px solid #eeeef1;
  border-radius: 0;
  background: #fff;
}

.cash-summary-tile:nth-child(4n) {
  border-right: 0;
}

.cash-summary-tile input {
  width: 100%;
  min-height: 30px;
  padding: 5px 0 2px;
  border: 0;
  border-bottom: 1px solid #dddde3;
  border-radius: 0;
  background: transparent;
  text-align: right;
}

.cash-summary-tile input:focus {
  border-bottom-color: #18181b;
  box-shadow: none;
}

.cash-operational-grid,
.cash-movement-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  align-items: start;
  gap: 12px;
}

.cash-movement-panel {
  min-width: 0;
  overflow: hidden;
}

.cash-entry-head,
.cash-entry-row {
  grid-template-columns: minmax(0, 1.12fr) minmax(88px, .52fr) minmax(128px, .76fr);
  gap: 7px;
}

.cash-entry-head {
  padding: 10px 12px 2px;
  color: #8f8f98;
  font-size: 9px;
}

.cash-rows {
  gap: 5px;
  padding: 8px 12px 12px;
}

.cash-entry-row input,
.cash-entry-row select {
  width: 100%;
  min-width: 0;
  height: 32px;
  min-height: 32px;
  padding: 6px 8px;
  border: 1px solid #e4e4e8;
  border-radius: 5px;
  background-color: #fff;
  font-size: 12px;
  font-weight: 650;
}

.cash-entry-row .cash-amount {
  text-align: right;
}

.cash-entry-row .cash-note {
  border-left: 1px solid #e4e4e8;
}

.cash-entry-row select.cash-note {
  padding-right: 20px;
  font-size: 11.5px;
}

.cash-withdrawal-panel {
  width: min(620px, 100%);
}

.cash-operational-grid .cash-withdrawal-panel {
  width: 100%;
  justify-self: stretch;
}

.cash-withdrawal-panel header {
  min-height: 54px;
}

.cash-withdrawal-panel .cash-withdrawal-grid {
  gap: 8px;
  padding: 10px;
}

.cash-withdrawal-panel .cash-money-tile {
  min-height: 58px;
  padding: 10px;
  border-color: #eeeef1;
  background: #fff;
}

.cash-withdrawal-panel .cash-money-tile input {
  min-height: 30px;
  border-color: #e4e4e8;
}

.cash-finish-panel {
  width: min(760px, 100%);
  border-color: #e1e1e6;
}

.cash-notes {
  padding: 12px;
}

.cash-notes textarea {
  min-height: 72px;
  border-color: #e4e4e8;
  background: #fff;
}

.cash-final-total {
  background: #fafafa;
}

.cash-final-total span {
  color: #777780;
}

.cash-final-total strong {
  color: #18181b;
  font-size: 28px;
  font-weight: 860;
}

@media (max-width: 900px) {
  .cash-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .cash-toolbar-actions > * {
    flex: 1 1 150px;
  }

  .cash-identity {
    grid-template-columns: 1fr;
  }

  .cash-identity-main,
  .cash-meta-grid {
    border-right: 0;
    border-bottom: 1px solid #ececf0;
  }

  .cash-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cash-hero-total {
    justify-items: start;
  }

  .cash-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cash-summary-tile:nth-child(2n) {
    border-right: 0;
  }
}

@media (max-width: 640px) {
  body:has(#cashView.is-active) .app-shell {
    grid-template-columns: 1fr;
  }

  body:has(#cashView.is-active) .sidebar {
    position: static;
    height: auto;
  }

  body:has(#cashView.is-active) .app-main {
    padding: 16px;
  }

  .cash-meta-grid,
  .cash-summary-grid,
  .cash-operational-grid,
  .cash-withdrawal-panel .cash-withdrawal-grid,
  .cash-finish-panel {
    grid-template-columns: 1fr;
  }

  .cash-summary-tile {
    border-right: 0;
    border-bottom: 1px solid #eeeef1;
  }

  .cash-summary-tile:last-child {
    border-bottom: 0;
  }

  .cash-entry-head {
    display: none;
  }

  .cash-entry-row {
    grid-template-columns: minmax(0, 1fr) minmax(96px, .45fr);
  }

  .cash-entry-row .cash-note {
    grid-column: 1 / -1;
  }

  .cash-final-total {
    justify-items: start;
    border-left: 0;
    border-top: 1px solid #ececf0;
  }
}

/* Cash sheet compact layout pass */
#cashView .cash-shell {
  width: min(1360px, 100%);
}

#cashView .cash-board {
  gap: 10px;
}

#cashView .cash-identity {
  min-height: 68px;
}

#cashView .cash-identity-main,
#cashView .cash-meta-grid,
#cashView .cash-hero-total {
  padding: 12px 14px;
}

#cashView .cash-meta-grid div {
  min-height: 48px;
  padding: 8px 11px;
}

#cashView .cash-identity-main h3 {
  font-size: 17px;
}

#cashView .cash-hero-total strong {
  font-size: 22px;
}

#cashView .cash-panel header,
#cashView .cash-movement-panel header {
  min-height: 46px;
  padding: 10px 12px;
}

#cashView .cash-panel h3,
#cashView .cash-movement-panel h3 {
  font-size: 13px;
}

#cashView .cash-panel header > strong,
#cashView .cash-movement-panel header > strong {
  font-size: 13px;
}

#cashView .cash-summary-tile {
  min-height: 58px;
  padding: 9px 11px;
}

#cashView .cash-summary-tile input {
  min-height: 26px;
}

#cashView .cash-operational-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

#cashView .cash-movement-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

#cashView .cash-entry-head,
#cashView .cash-entry-row {
  grid-template-columns: minmax(0, 1.08fr) minmax(74px, .48fr) minmax(100px, .72fr);
  gap: 6px;
}

#cashView .cash-entry-head {
  padding: 8px 10px 1px;
  font-size: 8.5px;
}

#cashView .cash-rows {
  gap: 4px;
  padding: 7px 10px 10px;
}

#cashView .cash-entry-row input,
#cashView .cash-entry-row select {
  height: 29px;
  min-height: 29px;
  padding: 5px 7px;
  font-size: 11.5px;
}

#cashView .cash-entry-row select.cash-note {
  font-size: 11px;
}

#cashView .cash-withdrawal-panel {
  grid-column: 1 / -1;
  width: 100%;
}

#cashView .cash-withdrawal-panel header {
  min-height: 42px;
}

#cashView .cash-withdrawal-panel .cash-withdrawal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 8px;
}

#cashView .cash-withdrawal-panel .cash-money-tile {
  min-height: 42px;
  grid-template-columns: minmax(0, 1fr) minmax(96px, 128px);
  align-items: center;
  padding: 7px 9px;
}

#cashView .cash-withdrawal-panel .cash-money-tile span {
  grid-column: auto;
}

#cashView .cash-withdrawal-panel .cash-money-tile input {
  min-height: 27px;
  padding: 5px 7px;
}

#cashView .cash-finish-panel {
  width: 100%;
  justify-self: stretch;
  grid-template-columns: minmax(0, 1fr) minmax(170px, 220px);
}

#cashView .cash-notes {
  padding: 10px;
}

#cashView .cash-notes textarea {
  min-height: 58px;
}

#cashView .cash-final-total {
  padding: 13px 15px;
}

#cashView .cash-final-total strong {
  font-size: 24px;
}

@media (max-width: 1180px) {
  #cashView .cash-operational-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  #cashView .cash-operational-grid,
  #cashView .cash-movement-grid,
  #cashView .cash-withdrawal-panel .cash-withdrawal-grid,
  #cashView .cash-finish-panel {
    grid-template-columns: 1fr;
  }
}

@media print {
  @page cash-sheet {
    size: A4 portrait;
    margin: 8mm;
  }

  body.printing-cash,
  body:has(#cashView.is-active):not(.printing-quote) {
    page: cash-sheet;
    margin: 0 !important;
    background: #fff !important;
  }

  body.printing-cash .sidebar,
  body.printing-cash .topbar,
  body.printing-cash .cash-toolbar,
  body.printing-cash .cash-status,
  body.printing-cash .toast,
  body:has(#cashView.is-active):not(.printing-quote) .sidebar,
  body:has(#cashView.is-active):not(.printing-quote) .topbar,
  body:has(#cashView.is-active):not(.printing-quote) .cash-toolbar,
  body:has(#cashView.is-active):not(.printing-quote) .cash-status,
  body:has(#cashView.is-active):not(.printing-quote) .toast {
    display: none !important;
  }

  body.printing-cash .app-shell,
  body:has(#cashView.is-active):not(.printing-quote) .app-shell {
    display: block !important;
    min-height: auto !important;
    background: #fff !important;
  }

  body.printing-cash .view,
  body:has(#cashView.is-active):not(.printing-quote) .view {
    display: none !important;
  }

  body.printing-cash #cashView,
  body:has(#cashView.is-active):not(.printing-quote) #cashView {
    display: block !important;
  }

  body.printing-cash .app-main,
  body.printing-cash .workspace,
  body.printing-cash .cash-shell,
  body:has(#cashView.is-active):not(.printing-quote) .app-main,
  body:has(#cashView.is-active):not(.printing-quote) .workspace,
  body:has(#cashView.is-active):not(.printing-quote) .cash-shell {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body.printing-cash .cash-board,
  body:has(#cashView.is-active):not(.printing-quote) .cash-board {
    width: 100% !important;
    display: grid !important;
    gap: 2.6mm !important;
    color: #18181b !important;
    font-size: 7.5pt !important;
    line-height: 1.2 !important;
  }

  body.printing-cash .cash-identity,
  body.printing-cash .cash-panel,
  body.printing-cash .cash-movement-panel,
  body.printing-cash .cash-finish-panel,
  body:has(#cashView.is-active):not(.printing-quote) .cash-identity,
  body:has(#cashView.is-active):not(.printing-quote) .cash-panel,
  body:has(#cashView.is-active):not(.printing-quote) .cash-movement-panel,
  body:has(#cashView.is-active):not(.printing-quote) .cash-finish-panel {
    break-inside: avoid !important;
    border: 1px solid #cfd0d6 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  body.printing-cash .cash-identity,
  body:has(#cashView.is-active):not(.printing-quote) .cash-identity {
    min-height: 15mm !important;
    display: grid !important;
    grid-template-columns: 1.05fr 1.15fr .75fr !important;
  }

  body.printing-cash .cash-identity-main,
  body.printing-cash .cash-meta-grid,
  body.printing-cash .cash-hero-total,
  body:has(#cashView.is-active):not(.printing-quote) .cash-identity-main,
  body:has(#cashView.is-active):not(.printing-quote) .cash-meta-grid,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total {
    padding: 3mm !important;
  }

  body.printing-cash .cash-identity-main,
  body:has(#cashView.is-active):not(.printing-quote) .cash-identity-main {
    border-left: 2mm solid #18181b !important;
    border-right: 1px solid #d9d9df !important;
  }

  body.printing-cash .cash-meta-grid,
  body:has(#cashView.is-active):not(.printing-quote) .cash-meta-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    border-right: 1px solid #d9d9df !important;
  }

  body.printing-cash .cash-meta-grid div,
  body:has(#cashView.is-active):not(.printing-quote) .cash-meta-grid div {
    min-height: 0 !important;
    padding: 0 2.5mm !important;
    border: 0 !important;
    border-right: 1px solid #ececf0 !important;
    background: transparent !important;
  }

  body.printing-cash .cash-hero-total,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total {
    justify-items: end !important;
    background: #18181b !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body.printing-cash .cash-hero-total span,
  body.printing-cash .cash-hero-total strong,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total strong {
    color: #fff !important;
  }

  body.printing-cash .cash-identity-main h3,
  body:has(#cashView.is-active):not(.printing-quote) .cash-identity-main h3 {
    margin: 1mm 0 0 !important;
    font-size: 11pt !important;
    line-height: 1.1 !important;
  }

  body.printing-cash .cash-hero-total strong,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total strong {
    font-size: 15pt !important;
  }

  body.printing-cash .cash-panel header,
  body.printing-cash .cash-movement-panel header,
  body:has(#cashView.is-active):not(.printing-quote) .cash-panel header,
  body:has(#cashView.is-active):not(.printing-quote) .cash-movement-panel header {
    min-height: 9mm !important;
    padding: 2mm 3mm !important;
    border-bottom: 1px solid #d9d9df !important;
  }

  body.printing-cash .cash-panel h3,
  body.printing-cash .cash-movement-panel h3,
  body:has(#cashView.is-active):not(.printing-quote) .cash-panel h3,
  body:has(#cashView.is-active):not(.printing-quote) .cash-movement-panel h3 {
    margin: .5mm 0 0 !important;
    font-size: 8.8pt !important;
  }

  body.printing-cash .cash-panel header > strong,
  body.printing-cash .cash-movement-panel header > strong,
  body:has(#cashView.is-active):not(.printing-quote) .cash-panel header > strong,
  body:has(#cashView.is-active):not(.printing-quote) .cash-movement-panel header > strong {
    font-size: 8.8pt !important;
  }

  body.printing-cash .cash-identity-main span,
  body.printing-cash .cash-meta-grid span,
  body.printing-cash .cash-hero-total span,
  body.printing-cash .cash-panel header span,
  body.printing-cash .cash-movement-panel header span,
  body.printing-cash .cash-money-tile span,
  body.printing-cash .cash-notes span,
  body.printing-cash .cash-final-total span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-identity-main span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-meta-grid span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-panel header span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-movement-panel header span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-money-tile span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-notes span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-final-total span {
    color: #5f6068 !important;
    font-size: 6.5pt !important;
    font-weight: 800 !important;
    letter-spacing: .03em !important;
  }

  body.printing-cash .cash-summary-grid,
  body:has(#cashView.is-active):not(.printing-quote) .cash-summary-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 0 !important;
  }

  body.printing-cash .cash-summary-tile,
  body:has(#cashView.is-active):not(.printing-quote) .cash-summary-tile {
    min-height: 13mm !important;
    padding: 2mm 3mm !important;
    border: 0 !important;
    border-right: 1px solid #ececf0 !important;
    background: #fff !important;
  }

  body.printing-cash .cash-summary-tile:nth-child(4n),
  body:has(#cashView.is-active):not(.printing-quote) .cash-summary-tile:nth-child(4n) {
    border-right: 0 !important;
  }

  body.printing-cash .cash-operational-grid,
  body.printing-cash .cash-movement-grid,
  body:has(#cashView.is-active):not(.printing-quote) .cash-operational-grid,
  body:has(#cashView.is-active):not(.printing-quote) .cash-movement-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2.6mm !important;
    align-items: start !important;
  }

  body.printing-cash .cash-entry-head,
  body.printing-cash .cash-entry-row,
  body:has(#cashView.is-active):not(.printing-quote) .cash-entry-head,
  body:has(#cashView.is-active):not(.printing-quote) .cash-entry-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1.12fr) 21mm 28mm !important;
    gap: 1.3mm !important;
    align-items: center !important;
  }

  body.printing-cash .cash-entry-head,
  body:has(#cashView.is-active):not(.printing-quote) .cash-entry-head {
    padding: 1.6mm 2.2mm .5mm !important;
    font-size: 5.8pt !important;
  }

  body.printing-cash .cash-rows,
  body:has(#cashView.is-active):not(.printing-quote) .cash-rows {
    gap: 1mm !important;
    padding: 1.2mm 2.2mm 2.2mm !important;
  }

  body.printing-cash .cash-entry-row input,
  body.printing-cash .cash-entry-row select,
  body.printing-cash .cash-money-tile input,
  body.printing-cash .cash-notes textarea,
  body:has(#cashView.is-active):not(.printing-quote) .cash-entry-row input,
  body:has(#cashView.is-active):not(.printing-quote) .cash-entry-row select,
  body:has(#cashView.is-active):not(.printing-quote) .cash-money-tile input,
  body:has(#cashView.is-active):not(.printing-quote) .cash-notes textarea {
    height: 6.2mm !important;
    min-height: 6.2mm !important;
    padding: .8mm 1.4mm !important;
    border: 1px solid #d9d9df !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #18181b !important;
    font-size: 7.2pt !important;
    box-shadow: none !important;
  }

  body.printing-cash .cash-entry-row .cash-amount,
  body.printing-cash .cash-money-tile input,
  body:has(#cashView.is-active):not(.printing-quote) .cash-entry-row .cash-amount,
  body:has(#cashView.is-active):not(.printing-quote) .cash-money-tile input {
    text-align: right !important;
  }

  body.printing-cash .cash-withdrawal-panel,
  body:has(#cashView.is-active):not(.printing-quote) .cash-withdrawal-panel {
    width: 100% !important;
  }

  body.printing-cash .cash-withdrawal-grid,
  body:has(#cashView.is-active):not(.printing-quote) .cash-withdrawal-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5mm !important;
    padding: 2mm !important;
  }

  body.printing-cash .cash-money-tile,
  body:has(#cashView.is-active):not(.printing-quote) .cash-money-tile {
    min-height: 11mm !important;
    padding: 1.8mm 2mm !important;
    border: 1px solid #ececf0 !important;
    border-radius: 0 !important;
    background: #fff !important;
  }

  body.printing-cash .cash-finish-panel,
  body:has(#cashView.is-active):not(.printing-quote) .cash-finish-panel {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 42mm !important;
  }

  body.printing-cash .cash-notes,
  body:has(#cashView.is-active):not(.printing-quote) .cash-notes {
    padding: 2.2mm !important;
    border-right: 1px solid #d9d9df !important;
  }

  body.printing-cash .cash-notes textarea,
  body:has(#cashView.is-active):not(.printing-quote) .cash-notes textarea {
    width: 100% !important;
    height: 14mm !important;
    min-height: 14mm !important;
    resize: none !important;
  }

  body.printing-cash .cash-final-total,
  body:has(#cashView.is-active):not(.printing-quote) .cash-final-total {
    padding: 3mm !important;
    justify-items: end !important;
    background: #f7f7f8 !important;
    border-left: 0 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body.printing-cash .cash-final-total strong,
  body:has(#cashView.is-active):not(.printing-quote) .cash-final-total strong {
    font-size: 16pt !important;
  }

  body.printing-cash .cash-hero-total span,
  body.printing-cash .cash-hero-total strong,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total span,
  body:has(#cashView.is-active):not(.printing-quote) .cash-hero-total strong {
    color: #fff !important;
  }
}

@media print {
  @page cash-sheet {
    size: A4 portrait;
    margin: 6mm;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .cash-board {
    display: none !important;
  }

  :is(body.printing-cash, body:has(#cashView.is-active):not(.printing-quote)) .cash-print-sheet {
    display: grid !important;
  }
}
