.quote-form,
.quote-conversion,
.quote-document {
  display: flex;
  flex-direction: column;
  gap: var(--geist-space-6x);
}

.quote-lines {
  display: flex;
  flex-direction: column;
  gap: var(--geist-space-3x);
  margin-bottom: var(--geist-space-3x);
}

.quote-line {
  padding: var(--geist-space-4x);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--ds-shadow-border);
}

.quote-line-grid {
  display: grid;
  grid-template-columns: 120px minmax(220px, 2fr) minmax(180px, 1fr) 100px 150px 130px auto;
  align-items: end;
  gap: var(--geist-space-3x);
}

.quote-line-grid .field { margin: 0; }
.quote-line-remove { align-self: end; }
.quote-data { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

.quote-print-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--geist-space-6x);
  padding-block: var(--geist-space-6x);
  border-block: 1px solid var(--hairline-mid);
  font-size: var(--text-md);
  line-height: 24px;
}

.quote-document-number { text-align: right; font-family: var(--font-mono); }
.quote-facts { max-width: 760px; }
.quote-lines-table tfoot th { text-align: right; }
.quote-lines-table tfoot th,
.quote-lines-table tfoot td { background: var(--surface); }
.quote-total th,
.quote-total td { font-weight: 600; }

.quote-notes {
  max-width: 75ch;
  padding-top: var(--geist-space-4x);
  border-top: 1px solid var(--hairline);
}

.quote-notes h2 { margin-bottom: var(--geist-space-2x); font-size: var(--text-md); line-height: 24px; }
.quote-decisions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--geist-space-3x); }
.quote-acceptance { display: flex; flex: 1 1 520px; align-items: flex-end; gap: var(--geist-space-3x); }
.quote-acceptance .field { flex: 1; margin: 0; }
.quote-revisions ul { margin: 0; padding-left: var(--geist-space-6x); }
.field-static { min-height: 36px; margin: 0; padding-block: 8px; }

@media (max-width: 1100px) {
  .quote-line-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .quote-line-description { grid-column: span 2; }
}

@media (max-width: 640px) {
  .quote-line-grid { grid-template-columns: 1fr; }
  .quote-line-description { grid-column: auto; }
  .quote-acceptance { align-items: stretch; flex-direction: column; }
}

@media print {
  .quote-document { gap: 14px; }
  .quote-document > .page-header { display: none; }
  .quote-print-header { padding-block: 10px; }
  .quote-facts .detail-list { grid-template-columns: 130px 1fr; }
  .quote-notes { break-inside: avoid; }
}
