/* Printed documents: client offer (.sheet.doc), internal calculation (.sheet.doc.internal), contract (.kpage.contract).
   A4 at 96 dpi = 794 × 1123 px. Brand: Karmenergy gold + Cromo navy, warm paper (#fbf8f3 = logo background). */
.sheet.doc, .kpage {
  --ink: #1c2541; --ink-2: #4a5473; --mut: #7d7768; --gold: #b8892a; --gold-l: #f4ead3; --paper: #fbf8f3; --rule: #e9e3d7; --ok: #2d7d4a;
  font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--ink); background: #fff;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.sheet.doc *, .kpage * { -webkit-print-color-adjust: exact; print-color-adjust: exact; box-sizing: border-box; }

/* ---------- client offer ---------- */
.sheet.doc { width: 210mm; min-height: 297mm; display: flex; flex-direction: column; font-size: 8.3pt; line-height: 1.3; box-shadow: 0 2px 12px rgba(0,0,0,.12); padding-bottom: 0; }
.d-head { display: grid; grid-template-columns: auto 1fr; gap: 8mm; align-items: center; padding: 5mm 12mm 3mm; border-bottom: 0.7mm solid var(--gold); }
.d-brand { display: flex; align-items: center; gap: 3.5mm; }
.d-brand .ke { height: 16.5mm; border-radius: 2mm; display: block; }
.d-brand .cr { height: 15.5mm; display: block; }
.d-co { text-align: right; color: var(--ink-2); font-size: 7.2pt; line-height: 1.4; }
.d-co .nm { font-size: 11pt; font-weight: 700; color: var(--ink); letter-spacing: .02em; margin-bottom: .6mm; }
.d-co b { color: var(--ink); }
.d-co .certs { width: 46mm; display: block; margin: 1mm 0 0 auto; }

.d-intro { display: grid; grid-template-columns: 1fr auto; gap: 6mm; align-items: end; padding: 3.6mm 12mm 0; }
.kicker { font-size: 7.2pt; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.d-intro h1 { font-size: 14.5pt; line-height: 1.15; margin: 1mm 0 0; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.d-intro .pc { color: var(--mut); margin-top: .8mm; }
.d-meta { display: flex; margin: 0; }
.d-meta div { padding: 0 0 0 4mm; margin-left: 4mm; border-left: 0.3mm solid var(--rule); }
.d-meta div:first-child { border-left: 0; margin-left: 0; padding-left: 0; }
.d-meta dt { font-size: 6.6pt; text-transform: uppercase; letter-spacing: .1em; color: var(--mut); }
.d-meta dd { margin: .6mm 0 0; font-size: 9.4pt; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }

.d-party { display: grid; grid-template-columns: 1.15fr 1fr; margin: 3mm 12mm 0; border: 0.3mm solid var(--rule); border-radius: 2.2mm; background: var(--paper); }
.d-party > div { padding: 1.7mm 4mm; }
.d-party > div + div { border-left: 0.3mm solid var(--rule); }
.lbl { font-size: 6.6pt; text-transform: uppercase; letter-spacing: .1em; color: var(--mut); font-weight: 600; }
.pn { font-size: 10pt; font-weight: 700; margin-top: .6mm; }
.pa { font-size: 8.6pt; font-weight: 600; margin-top: .8mm; }
.pc { font-size: 7.6pt; color: var(--ink-2); margin-top: .5mm; }
.miss { color: #b4372a; }

.d-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3mm; margin: 2.6mm 12mm 0; }
.d-kpi { border-radius: 2.2mm; padding: 1.4mm 4mm 1.3mm; display: grid; grid-template-columns: auto 1fr; column-gap: 3mm; align-items: baseline; background: #f6f4ef; border-top: 1mm solid var(--ink); }
.d-kpi.pv { border-top-color: var(--gold); background: #fbf6ea; }
.d-kpi.bat { border-top-color: #3f8f5a; background: #f1f7f2; }
.d-kpi .l { grid-column: 1 / -1; font-size: 6.6pt; text-transform: uppercase; letter-spacing: .1em; color: var(--mut); font-weight: 600; }
.d-kpi .v { font-size: 13.5pt; font-weight: 700; line-height: 1.15; margin-top: .3mm; font-variant-numeric: tabular-nums; }
.d-kpi .v span { font-size: 9pt; font-weight: 600; margin-left: 1mm; color: var(--ink-2); }
.d-kpi .s { font-size: 7pt; color: var(--ink-2); text-align: right; }

.d-items { width: calc(100% - 24mm); margin: 3mm 12mm 0; border-collapse: collapse; }
.d-items thead th { font-size: 6.6pt; text-transform: uppercase; letter-spacing: .08em; color: var(--mut); font-weight: 600; text-align: left; padding: 0 1.5mm 1.6mm; border-bottom: 0.5mm solid var(--ink); vertical-align: bottom; }
.d-items thead th small { display: block; text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 6.4pt; }
.d-items th.q, .d-items th.p, .d-items th.v { text-align: right; }
.d-items th.n { text-align: center; }
.d-items td { padding: 0.5mm 1.5mm; line-height: 1.25; border-bottom: 0.2mm solid var(--rule); vertical-align: top; font-variant-numeric: tabular-nums; }
.d-items tr.sec td { padding: 1.7mm 1.5mm 0.5mm; border-bottom: 0.3mm solid var(--gold); }
.d-items tr.sec span { font-size: 6.9pt; text-transform: uppercase; letter-spacing: .12em; color: var(--gold); font-weight: 700; }
.d-items td.n { width: 7mm; text-align: center; color: var(--mut); }
.d-items .nm .t { font-weight: 600; font-size: 7.9pt; }
.d-items .nm .dt { font-size: 7.1pt; color: #5a6a94; }
.d-items td.cd, .d-items th.cd { width: 25mm; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 6.2pt; color: var(--mut); padding-top: .85mm; word-break: break-all; }
.d-items th.cd { font-family: inherit; font-size: 6.6pt; }
.d-items .nm .cd { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 6.3pt; color: var(--mut); margin-top: .3mm; }
.d-items td.q { width: 15mm; text-align: right; white-space: nowrap; }
.d-items td.q small { color: var(--mut); font-size: 6.6pt; }
.d-items td.p { width: 23mm; text-align: right; white-space: nowrap; }
.d-items td.v { width: 25mm; text-align: right; white-space: nowrap; font-weight: 700; }
.d-items tr.disc .t, .d-items tr.disc td.v, .d-items tr.disc td.p { color: var(--ok); }
.d-items tbody tr { break-inside: avoid; }
.empty-doc { text-align: center; padding: 10mm !important; color: var(--mut); }

.d-bottom { margin-top: auto; padding: 3.5mm 12mm 0; display: grid; grid-template-columns: 1fr 80mm; gap: 8mm; align-items: end; break-inside: avoid; }
.d-sig { display: flex; align-items: center; gap: 4mm; margin-top: 1.5mm; }
.d-sig .stamp { height: 17mm; display: block; }
.d-sig .adm { font-weight: 700; font-size: 9pt; }
.d-sig .sig { height: 9.5mm; display: block; margin-top: 1mm; }
.d-total { border: 0.3mm solid var(--rule); border-radius: 2.5mm; overflow: hidden; }
.d-total .r { display: flex; justify-content: space-between; padding: 1.3mm 4mm; font-size: 8.6pt; font-variant-numeric: tabular-nums; }
.d-total .r + .r { border-top: 0.2mm solid var(--rule); }
.d-total .g { display: flex; justify-content: space-between; align-items: baseline; background: var(--ink); color: #fff; padding: 2.4mm 4mm; font-variant-numeric: tabular-nums; }
.d-total .g span:first-child { font-size: 7.6pt; text-transform: uppercase; letter-spacing: .1em; color: #e9d6a6; font-weight: 600; }
.d-total .g span:last-child { font-size: 14pt; font-weight: 700; }
.d-total .g small { font-size: 8.5pt; font-weight: 600; }
.d-total .val { font-size: 7pt; color: var(--mut); padding: 1.2mm 4mm; background: var(--paper); }

.d-foot { margin-top: 3.5mm; }
.d-foot .thx { background: var(--gold); color: #fff; text-align: center; font-weight: 700; letter-spacing: .06em; font-size: 9.2pt; padding: 1.8mm 12mm; text-transform: uppercase; display: flex; justify-content: space-between; align-items: baseline; }
.d-foot .thx span { text-transform: none; letter-spacing: .02em; font-weight: 500; font-size: 8pt; color: #fff6e3; }
.d-foot .sl { text-align: center; font-size: 7.8pt; color: var(--ink-2); padding-top: 1.6mm; letter-spacing: .02em; }

/* ---------- internal calculation ---------- */
.internal .i-tag { background: #8f2f24; color: #fff; font-size: 6.8pt; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 1.6mm 12mm; }
.internal .d-intro { padding-top: 5mm; }
.internal .d-intro h1 { font-size: 14pt; }
.i-sum { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2mm; margin: 4mm 12mm 0; }
.i-box { background: #f6f4ef; border-radius: 2mm; padding: 2.2mm 2.6mm; }
.i-box .l { font-size: 6.2pt; text-transform: uppercase; letter-spacing: .08em; color: var(--mut); font-weight: 600; min-height: 2.2em; }
.i-box .v { font-size: 9.6pt; font-weight: 700; font-variant-numeric: tabular-nums; margin-top: .6mm; white-space: nowrap; }
.i-box.hi { background: var(--ink); color: #fff; }
.i-box.hi .l { color: #e9d6a6; }
.i-items { font-size: 7.4pt; }
.i-items .nm .t { font-size: 7.6pt !important; }
.i-items td.p { width: 16.5mm !important; }
.i-items td.v { width: 18mm !important; color: var(--ok); }
.i-items td.q { width: 13mm !important; }
.i-foot { display: grid; grid-template-columns: 1fr 72mm; gap: 8mm; margin: 5mm 12mm 0; align-items: start; }
.i-foot .note { font-size: 7pt; color: var(--mut); line-height: 1.45; margin: 0; }
.i-foot .tt .r { display: flex; justify-content: space-between; padding: 1.2mm 0; border-bottom: 0.2mm solid var(--rule); font-variant-numeric: tabular-nums; font-size: 8.4pt; }
.i-foot .tt .r.g { font-weight: 700; font-size: 9.6pt; border-bottom: 0.5mm solid var(--ink); }

/* ---------- contract (paginated) ---------- */
.kpage { width: 210mm; height: 297mm; padding: 13mm 17mm 9mm; display: flex; flex-direction: column; font-size: 9.4pt; line-height: 1.5; }
.kpage .kbody { flex: 1; overflow: hidden; min-height: 0; font-family: Charter, "Iowan Old Style", Georgia, "Times New Roman", serif; }
.kpage .kfoot { font-size: 6.8pt; color: var(--mut); text-align: center; border-top: 0.2mm solid var(--rule); padding-top: 1.6mm; letter-spacing: .06em; }
.k-head { display: grid; grid-template-columns: auto 1fr; gap: 6mm; align-items: center; padding-bottom: 3.5mm; border-bottom: 0.6mm solid var(--gold); font-family: "Avenir Next", "Segoe UI", Arial, sans-serif; }
.k-logos { display: flex; gap: 3mm; align-items: center; }
.k-logos .ke { height: 17mm; border-radius: 1.6mm; display: block; }
.k-logos .cr { height: 16mm; display: block; }
.k-co { text-align: right; font-size: 7.3pt; line-height: 1.45; color: var(--ink-2); }
.k-co b { display: block; font-size: 10pt; color: var(--ink); letter-spacing: .02em; }
.k-co span { display: block; }
.k-title { text-align: center; margin: 6mm 0 4mm; font-family: "Avenir Next", "Segoe UI", Arial, sans-serif; }
.k-title h1 { font-size: 15pt; text-transform: uppercase; letter-spacing: .1em; margin: 0; font-weight: 700; }
.k-no { font-size: 9.6pt; margin-top: 1.2mm; color: var(--ink-2); }
.k-no span { margin-left: 6mm; }
.kpage h2 { font-family: "Avenir Next", "Segoe UI", Arial, sans-serif; font-size: 8.6pt; text-transform: uppercase; letter-spacing: .08em; margin: 4.2mm 0 1.6mm; padding-bottom: 1mm; border-bottom: 0.2mm solid var(--rule); color: var(--ink); }
.kpage p { margin: 0 0 1.7mm; text-align: justify; hyphens: auto; }
.kpage p.c { text-align: center; margin: 1mm 0 2mm; font-style: italic; }
.kpage .k-cons { margin-top: 2mm; }
.kpage ul { margin: 0 0 1.8mm 5mm; padding: 0; }
.kpage li { margin: .5mm 0; padding-left: 1mm; text-align: justify; }
.kpage li::marker { color: var(--gold); }
.kpage .blank { color: #b4372a; letter-spacing: -.02em; }
.kpage .keep { break-inside: avoid; }
.k-sign { display: grid; grid-template-columns: 1fr 1fr; gap: 14mm; margin-top: 9mm; font-family: "Avenir Next", "Segoe UI", Arial, sans-serif; break-inside: avoid; }
.k-sign .role { font-size: 7.4pt; text-transform: uppercase; letter-spacing: .14em; color: var(--gold); font-weight: 700; }
.k-sign .nm { font-size: 9.4pt; font-weight: 700; margin-top: .6mm; }
.k-sign .sub { font-size: 7pt; text-transform: uppercase; letter-spacing: .08em; color: var(--mut); margin-top: 2.4mm; }
.k-sign > div { min-width: 0; overflow-wrap: anywhere; display: flex; flex-direction: column; }
.k-sign > div > .nm:nth-last-child(2) { margin-bottom: 15mm; }
.k-sign .sig-line { margin-top: auto; border-top: 0.3mm solid var(--ink); font-size: 6.8pt; color: var(--mut); padding-top: 1mm; }
