/* quote-doc.css — 견적서 문서 · Apple style */

.q-paper {
  background: var(--q-paper);
  padding: 64px 72px 56px;
  border: 1px solid var(--q-line-soft);
  border-radius: 18px;
  position: relative;
  box-shadow: 0 4px 24px rgba(0,0,0,0.05);
}

/* ─── TITLE — large, light-weight, generous ──────────── */
.q-doc-title {
  text-align: left; padding: 8px 0 36px;
  display: flex; flex-direction: column; gap: 14px;
  border-bottom: 1px solid var(--q-line-soft);
}
.q-doc-title em {
  font: 500 13px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em; font-style: normal;
}
.q-doc-title h1 {
  font: 600 56px/1.05 var(--font-sf);
  letter-spacing: -0.035em;
  color: var(--q-ink);
}
.q-doc-title .q-doc-no {
  font: 500 13px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em;
  font-feature-settings: "tnum" 1; margin-top: 4px;
}

/* ─── META (To · Issued) ────────────────────────────── */
.q-doc-meta {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  padding: 32px 0 36px; border-bottom: 1px solid var(--q-line-soft);
}
.q-meta-cell { padding: 0 32px;}
.q-meta-cell:first-child { padding-left: 0; border-right: 1px solid var(--q-line-soft);}
.q-meta-cell:last-child { padding-right: 0;}
.q-meta-l {
  font: 500 12px/1 var(--font-sf); color: var(--q-ink-soft);
  margin-bottom: 14px; letter-spacing: -0.005em;
}
.q-meta-name {
  font: 600 24px/1.2 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.025em;
  margin-bottom: 16px; padding-bottom: 16px;
  border-bottom: 1px solid var(--q-line-soft);
}
.q-meta-row {
  display: grid; grid-template-columns: 100px 1fr; gap: 12px; align-items: baseline;
  padding: 7px 0;
}
.q-meta-row dt {
  font: 500 12px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em;
}
.q-meta-row dd {
  font: 500 14px/1.5 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.005em;
}

/* ─── SECTION ───────────────────────────────────────── */
.q-doc-section { padding: 32px 0; border-bottom: 1px solid var(--q-line-soft);}
.q-doc-section:last-of-type { border-bottom: 0;}
.q-doc-section-h {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 18px;
}
.q-doc-section-h h2 {
  font: 600 17px/1 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.02em;
}
.q-doc-section-h em {
  font: 400 13px/1 var(--font-sf); color: var(--q-ink-soft);
  font-style: normal; letter-spacing: -0.005em;
}

/* ─── ITEMS TABLE ───────────────────────────────────── */
.q-items {
  width: 100%; border-collapse: collapse;
  font: 400 14px/1.5 var(--font-sf); color: var(--q-ink);
}
.q-items thead th {
  text-align: left; padding: 10px 12px;
  font: 500 11px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em;
  border-bottom: 1px solid var(--q-line);
}
.q-items thead th.num { text-align: right;}
.q-items thead th.center { text-align: center;}
.q-items tbody tr { border-bottom: 1px solid var(--q-line-soft);}
.q-items tbody tr:last-child { border-bottom: 0;}
.q-items td { padding: 16px 12px; vertical-align: top;}
.q-items td.num { text-align: right; font-feature-settings: "tnum" 1;}
.q-items td.center { text-align: center;}
.q-items td.idx { color: var(--q-ink-soft); width: 28px;
  font: 500 13px/1 var(--font-sf);}
.q-items-name b {
  font: 500 15px/1.4 var(--font-sf); color: var(--q-ink); display: block;
  letter-spacing: -0.01em;
}
.q-items-name-row {
  display: flex; align-items: center; gap: 8px;
}
.q-items-kind {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 3px 8px; border-radius: 5px;
  font: 700 10px/1 var(--font-sf); letter-spacing: 0.02em;
  color: #fff; background: var(--q-ink);
  flex: none;
}
.q-items-kind.labor { background: var(--q-dot);}
.q-items-name small {
  font: 400 13px/1.5 var(--font-sf); color: var(--q-ink-soft);
  display: block; margin-top: 4px;
}

/* 그룹 헤더 (파트 / 공임) */
.q-items-group td {
  padding: 18px 8px 8px !important;
  border-bottom: 0 !important;
  font: 600 13px/1 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.005em;
}
.q-items-group-dot {
  display: inline-block; width: 8px; height: 8px; border-radius: 100px; margin-right: 8px;
  vertical-align: 1px;
}
.q-items-group em {
  font: 500 12px/1 var(--font-sf); color: var(--q-ink-soft);
  font-style: normal; margin-left: 10px;
}
.q-items-empty {
  padding: 56px 0; text-align: center;
  font: 400 15px/1 var(--font-sf); color: var(--q-ink-soft);
}

/* ─── TOTALS — informative & clear ──────────────────── */
.q-totals {
  display: grid; grid-template-columns: 1fr 360px; gap: 56px;
  padding: 32px 0; border-bottom: 1px solid var(--q-line-soft); align-items: end;
}
.q-totals-l { display: flex; flex-direction: column; gap: 14px;}
.q-totals-note {
  font: 500 13px/1.5 var(--font-sf); color: var(--q-ink-mid);
  padding: 10px 14px; background: var(--q-fill); border-radius: 10px;
  letter-spacing: -0.005em;
}
.q-totals-summary {
  display: flex; flex-direction: column; gap: 0;
  padding: 4px 0;
}
.q-totals-sum-row {
  display: grid; grid-template-columns: 70px 1fr; gap: 16px; align-items: baseline;
  padding: 6px 0; border-bottom: 1px solid var(--q-line-soft);
}
.q-totals-sum-row:last-child { border-bottom: 0;}
.q-totals-sum-row span {
  font: 500 12px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em;
}
.q-totals-sum-row b {
  font: 600 14px/1.3 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.005em; font-feature-settings: "tnum" 1;
}
.q-totals-fineprint {
  font: 400 12px/1.55 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em; padding-top: 4px;
}

.q-totals-r { display: flex; flex-direction: column; gap: 0;}
.q-totals-breakdown {
  background: var(--q-fill); border-radius: 10px;
  padding: 12px 14px; margin-bottom: 10px;
  display: flex; flex-direction: column; gap: 8px;
}
.q-bd-row {
  display: grid; grid-template-columns: 8px 1fr auto; gap: 8px; align-items: center;
}
.q-bd-dot { width: 8px; height: 8px; border-radius: 100px;}
.q-bd-row span:nth-child(2) {
  font: 500 12px/1 var(--font-sf); color: var(--q-ink-mid); letter-spacing: -0.005em;
}
.q-bd-row b {
  font: 600 14px/1 var(--font-sf); color: var(--q-ink);
  font-feature-settings: "tnum" 1; letter-spacing: -0.01em;
}

.q-total-row {
  display: grid; grid-template-columns: 1fr auto; gap: 24px;
  padding: 10px 0; align-items: baseline;
  border-bottom: 1px solid var(--q-line-soft);
}
.q-total-row:last-of-type { border-bottom: 0;}
.q-total-l { font: 500 13px/1 var(--font-sf); color: var(--q-ink-mid); letter-spacing: -0.005em;}
.q-total-v { font: 600 15px/1 var(--font-sf); color: var(--q-ink); font-feature-settings: "tnum" 1; letter-spacing: -0.01em;}
.q-total-v.disc { color: var(--q-dot);}

.q-total-row.grand {
  padding-top: 18px; margin-top: 8px;
  border-top: 1.5px solid var(--q-ink); border-bottom: 1.5px solid var(--q-ink);
  padding-bottom: 18px;
  background: var(--q-paper);
  align-items: center;
}
.q-total-grand-l {
  font: 700 14px/1.2 var(--font-sf); color: var(--q-ink); letter-spacing: -0.01em;
}
.q-total-grand-sub {
  font: 500 11px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em; margin-top: 4px;
}
.q-total-row.grand .q-total-v {
  font: 700 34px/1 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.035em;
}
.q-total-row.grand .q-total-v small {
  font: 500 17px/1 var(--font-sf); color: var(--q-ink-soft); margin-right: 4px;
}

/* ─── TERMS + SIGN ──────────────────────────────────── */
.q-doc-terms {
  display: block;
  padding-top: 32px;
}
.q-terms-l {
  font: 400 13px/1.7 var(--font-sf); color: var(--q-ink-mid);
  letter-spacing: -0.005em;
}
.q-terms-h {
  font: 600 13px/1 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.01em; margin-bottom: 14px;
}
.q-terms-l ol { list-style: decimal; padding-left: 20px; display: flex; flex-direction: column; gap: 7px;}
.q-terms-l li::marker { color: var(--q-ink-soft); font-weight: 500;}

.q-sigs { display: flex; flex-direction: column; gap: 24px;}
.q-sig {
  border-top: 1px solid var(--q-line); padding-top: 10px;
}
.q-sig-l {
  font: 500 12px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em;
}
.q-sig-line {
  height: 56px;
  display: flex; align-items: flex-end; justify-content: space-between;
  font: 500 17px/1 var(--font-sf); color: var(--q-ink);
  letter-spacing: -0.01em;
}
.q-sig-line span {
  font: 500 12px/1 var(--font-sf); color: var(--q-ink-soft);
  padding-bottom: 6px;
}
.q-sig-stamp {
  border: 1.5px solid var(--q-dot); color: var(--q-dot);
  width: 62px; height: 62px; border-radius: 100px;
  display: inline-flex; align-items: center; justify-content: center;
  font: 600 10px/1.2 var(--font-sf); letter-spacing: -0.005em;
  text-align: center;
  transform: rotate(-4deg); opacity: 0.85;
}

/* ─── DOC FOOTER ────────────────────────────────────── */
.q-doc-footer {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--q-line-soft);
  font: 400 12px/1 var(--font-sf); color: var(--q-ink-soft);
  letter-spacing: -0.005em;
}
.q-doc-footer-c { display: flex; align-items: center; gap: 10px;}
.q-doc-footer-c span::before { content:"·"; margin: 0 8px;}
.q-doc-footer-c span:first-child::before { display: none;}
.q-doc-footer img { height: 14px; opacity: 0.55;}

/* ─── PRINT ─────────────────────────────────────────── */
@media print {
  @page { size: A4 portrait; margin: 14mm; }
  body, html { background: #fff !important;}
  .q-header, .q-pagenav, .q-builder, .cat-footer { display: none !important;}
  .q-main { display: block !important; padding: 0 !important; max-width: none !important;}
  .q-paper { border: 0 !important; padding: 0 !important; box-shadow: none !important; border-radius: 0 !important;}
  .q-doc-section { break-inside: avoid;}
  .q-totals { break-inside: avoid;}
  .q-doc-terms { break-inside: avoid;}
}
