.inv{--inv-line:var(--line,#dfe3dc);--inv-ink:var(--ink,#131713);--inv-muted:var(--muted,#687068);--inv-accent:var(--green,#1e5b3a);--inv-soft:var(--green-soft,#e7f0e9);display:grid;gap:16px;min-width:0}
.inv-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}
.inv-form{display:grid;gap:12px;min-width:0}
.inv-set{display:grid;gap:10px;margin:0;background:#fff;border:1px solid var(--inv-line);border-radius:12px;padding:12px 14px 14px;min-width:0}
.inv-set legend{font-weight:800;font-size:14px;padding:0 6px;color:var(--inv-ink)}
.inv-form label{display:grid;gap:5px;align-content:start;font-size:13px;font-weight:600;color:var(--inv-ink);min-width:0}
.inv-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.inv-logo{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.inv-logo label{flex:1 1 200px}
.inv-items{display:grid;gap:10px}
.inv-item{display:grid;grid-template-columns:minmax(0,1fr) 72px 96px auto 34px;gap:8px;align-items:end;padding-bottom:10px;border-bottom:1px dashed var(--inv-line)}
.inv-amt{font-size:14px;font-weight:700;text-align:right;padding-bottom:10px;white-space:nowrap}
.inv .inv-x{width:34px;height:38px;padding:0;border-radius:8px;background:#fff;border:1px solid var(--inv-line);color:var(--inv-muted);font-size:18px;line-height:1}
.inv .inv-btn{border:0;border-radius:999px;padding:11px 18px;font-weight:700;font-size:14px;cursor:pointer;background:var(--inv-ink);color:#fff}
.inv .inv-btn.ghost{background:#fff;border:1px solid var(--inv-ink);color:var(--inv-ink)}
.inv .inv-btn.small{padding:7px 12px;font-size:13px;justify-self:start}
.inv .inv-btn:disabled{opacity:.45;cursor:not-allowed}
.inv-side{display:grid;gap:10px;position:sticky;top:12px;min-width:0}
.inv-actions{display:flex;flex-wrap:wrap;gap:8px}
.inv-status{margin:0;font-size:13px;color:var(--inv-accent);font-weight:600;overflow-wrap:anywhere}
.inv-status:empty{display:none}
.inv-warn{margin:0;background:#fff8e6;border:1px solid #ecd9a4;color:#6b5210;border-radius:10px;padding:10px 12px;font-size:14px}
.inv-paper-wrap{background:#eef0ec;border:1px solid var(--inv-line);border-radius:12px;padding:12px;min-width:0}
.inv-paper{background:#fff;color:#131713;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.12);padding:28px 26px;font-size:12px;line-height:1.45;display:grid;gap:18px;min-width:0;overflow-wrap:anywhere}
.ip-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ip-from{display:grid;gap:4px;max-width:60%;min-width:0}
.ip-logo{max-width:150px;max-height:56px;width:auto;height:auto;object-fit:contain}
.ip-name{font-size:14px}
.ip-name.is-placeholder{color:#a7ada6}
.ip-lines{margin:0;color:#5f665f}
.ip-meta{text-align:right;min-width:0;margin-left:auto}
.ip-title{margin:0 0 6px;font-size:24px;letter-spacing:.06em;text-transform:uppercase;line-height:1.1}
.ip-dl{display:grid;grid-template-columns:auto auto;gap:2px 12px;margin:0;justify-content:end}
.ip-dl dt{color:#5f665f}
.ip-dl dd{margin:0;font-weight:700}
.ip-bill{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ip-bill>div{display:grid;gap:3px;min-width:0}
.ip-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5f665f}
.ip-due-box{text-align:right}
.ip-big{font-size:20px}
.ip-table{width:100%;border-collapse:collapse}
.ip-table th{background:#f0f2ee;font-size:11px;text-align:right;padding:6px 8px}
.ip-table th:first-child,.ip-table td:first-child{text-align:left;width:100%}
.ip-table th:not(:first-child),.ip-table td:not(:first-child){white-space:nowrap}
.ip-table td{padding:7px 8px;border-bottom:1px solid #e3e6e1;text-align:right;vertical-align:top;overflow-wrap:anywhere}
.ip-totals{display:grid;grid-template-columns:auto auto;gap:4px 18px;margin:0;justify-content:end;text-align:right}
.ip-totals dt{color:#5f665f}
.ip-totals dd{margin:0;min-width:90px}
.ip-totals .ip-total{font-weight:800;font-size:14px;color:#131713;border-top:1px solid #131713;padding-top:5px}
.ip-foot{display:grid;gap:12px}
.ip-foot>div{display:grid;gap:3px}
.inv-sub{grid-column:1/-1;margin:6px 0 0;font-size:14px}
.inv-note{font-size:13px;color:var(--inv-muted);margin:0}
@media (max-width:860px){.inv-work{grid-template-columns:minmax(0,1fr)}.inv-side{position:static;order:-1}}
@media (max-width:520px){
  .inv-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 34px}
  .inv-item .inv-desc{grid-column:1/-1}
  .inv-amt{grid-column:1/3;text-align:left;padding:0}
  .inv-paper{padding:18px 14px;font-size:11px}
  .ip-from{max-width:100%}
}
/* the page styles every input and button inside .lab-tool; these rules win back the tool's own look */
.inv [hidden]{display:none!important}
.inv .pg-check input{width:auto;padding:0;border:0}
.inv input[readonly]{background:#f3f4f1;color:var(--inv-muted)}
#invPrintRoot{display:none}
@media print{
  @page{margin:12mm}
  body>*:not(#invPrintRoot){display:none!important}
  #invPrintRoot{display:block}
  #invPrintRoot .inv-paper{box-shadow:none;border-radius:0;padding:0;font-size:10.5pt;gap:16pt}
  #invPrintRoot [hidden]{display:none!important}
  #invPrintRoot .ip-name.is-placeholder{visibility:hidden}
  #invPrintRoot .ip-table tr{break-inside:avoid}
}
