/* Proformas: the editor (lines, totals), the document preview, collection status pills. */
.editor{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:start}
.items th:first-child,.items td:first-child{width:36px;text-align:center;color:var(--ink-3);font-family:var(--mono);font-size:12px}
.items input,.items select{padding:5px 7px;min-width:64px}
.items td{padding:6px 6px}
.items .w-desc{min-width:220px}.items .w-qty{width:90px}.items .w-price{width:150px}.items .w-total{width:150px}.items .w-x{width:36px}
.items .rm{background:none;border:0;color:var(--ink-3);cursor:pointer;font-size:16px;line-height:1;padding:4px}
.items .rm:hover{color:var(--red)}
.pick{display:flex;gap:8px;align-items:center;margin-top:10px}
.pick select{max-width:340px}
.totals{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;position:sticky;top:20px}
.totals .row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;gap:10px}
.totals .row.sub{border-top:1px solid var(--line);margin-top:6px;padding-top:10px}
.totals .row.grand{border-top:2px solid var(--ink);margin-top:8px;padding-top:12px;font-weight:600;font-size:16px}
.totals .row input,.totals .row select{width:84px;padding:4px 6px;text-align:right}
.totals .row .inl{display:flex;align-items:center;gap:6px}
.totals .stack{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.status-select{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2);margin-top:10px}
.status-select select{width:auto;padding:4px 8px;font-size:12px}
.cust-preview{font-size:12.5px;color:var(--ink-2);margin-top:8px;padding:10px 12px;background:var(--panel-2);border-radius:5px;white-space:pre-line;line-height:1.45}

/* document preview */

.doc-wrap{background:var(--panel-2);padding:24px;border-radius:var(--radius);overflow-x:auto}
.doc{width:210mm;min-height:280mm;margin:0 auto;padding:12mm 14mm 14mm;box-shadow:var(--shadow)}
.doc.loading{display:grid;place-items:center;color:var(--ink-3)}

/* line-items editor */
.items.lines{table-layout:fixed;min-width:980px}
.items.lines input[type=checkbox]{width:18px;height:18px;min-width:0;padding:0;vertical-align:middle}
.items.lines col.c-n{width:36px}.items.lines col.c-desc{width:auto}.items.lines col.c-qty{width:90px}.items.lines col.c-uom{width:80px}
.items.lines col.c-price{width:120px}.items.lines col.c-avd{width:48px}.items.lines col.c-sp{width:70px}.items.lines col.c-net{width:115px}.items.lines col.c-amt{width:140px}.items.lines col.c-x{width:36px}
.items.lines input{width:100%;min-width:0}
.items.lines input.num{text-align:right}
.items.lines tr.charge td{background:var(--panel-2)}
.items.lines tfoot td{border-top:2px solid var(--line-strong);background:var(--panel-2)}
.items.lines td:first-child{color:var(--ink-3);font-family:var(--mono);font-size:12px;text-align:center}

#p-prices input,#p-prices select{width:100%;min-width:0}
#p-prices td:first-child{font-family:inherit;color:inherit;text-align:left;width:auto;font-size:inherit}

/* comfortable sizes for the totals panel and line inputs */
.totals{display:flex;flex-direction:column;gap:10px}
.totals .row{padding:2px 0}
.totals label.f>span{font-size:11.5px}
.totals input,.totals select{padding:8px 10px;font-size:15px;width:100%}
.items.lines input{padding:7px 8px;font-size:14px}

@media (max-width:900px){
  .editor{grid-template-columns:1fr}
  .totals{position:static}
}

/* collection status (COPA) */
.pill.c-full{background:var(--accent-soft);color:var(--accent)}
.pill.c-partial{background:var(--blue-soft);color:var(--blue)}
.pill.c-partial_expired{background:var(--amber-soft);color:var(--amber)}
.pill.c-expired{background:var(--red-soft);color:var(--red)}
.pill.c-open{background:var(--panel-2);color:var(--ink-2)}
.pill.c-followed{background:var(--accent-soft);color:var(--accent)}
.pill.c-no_customer,.pill.c-cancelled{background:var(--panel-2);color:var(--ink-3)}

/* project PFI: the oneCRM project (editor.js projectField / pickProject) */
.crm-proj{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius);padding:8px 10px}
.crm-proj-act{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.crm-proj-row{display:flex;gap:6px}.crm-proj-row input{flex:1;min-width:0}
.crm-hits{display:grid;gap:6px;max-height:50vh;overflow:auto;margin-top:8px}
.crm-hit{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}
.crm-hit span{display:flex;flex-direction:column;min-width:0}
.crm-hit:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.crm-req{margin-top:6px;padding-top:6px;border-top:1px dashed var(--accent-line);color:var(--ink-2)}
