/* Invoice generator (/free-tools/invoice-generator/). From design/resources/clean/invoice-generator.css,
   scoped to .rs, plus the print stylesheet that turns the preview into the PDF. */
.rs .ig{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:28px;align-items:start}
.rs .pane{border:1px solid var(--line);border-radius:26px;padding:26px;display:grid;gap:22px;background:#fff}
.rs .pane fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;gap:14px}
.rs .pane legend{font:750 17px var(--fd);letter-spacing:-.02em;display:flex;align-items:center;gap:10px;padding:0;margin-bottom:14px;color:var(--ink)}
.rs .pane legend .n{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font:800 13px var(--fd)}
.rs .fg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rs .fl{display:grid;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink-2);align-content:start}
.rs .fl-2{grid-column:1/-1}
.rs .fl .opt{font-weight:500;color:var(--muted)}
.rs .fl input,.rs .fl select,.rs .fl textarea{height:44px;border:1.5px solid var(--line);border-radius:12px;padding:0 12px;font-size:15px;color:var(--ink);background:#fff;outline:0;min-width:0;width:100%;font-weight:500;font-family:inherit}
.rs .fl textarea{height:auto;min-height:64px;padding:10px 12px;resize:vertical;line-height:1.45}
.rs .fl input:focus,.rs .fl select:focus,.rs .fl textarea:focus{border-color:var(--royal);box-shadow:0 0 0 4px var(--royal-soft)}
.rs .logo-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rs .logo-btn{cursor:pointer;position:relative}
.rs .logo-btn:focus-within{outline:3px solid var(--royal);outline-offset:3px}
.rs .items{display:grid;gap:8px}
.rs #ig-its{display:grid;gap:8px}
.rs .it{display:grid;grid-template-columns:minmax(0,1fr) 64px 104px 36px;gap:8px;align-items:center}
.rs .it input{height:42px;border:1.5px solid var(--line);border-radius:11px;padding:0 10px;font-size:14.5px;min-width:0;width:100%;outline:0;color:var(--ink);background:#fff;font-family:inherit}
.rs .it input:focus{border-color:var(--royal);box-shadow:0 0 0 4px var(--royal-soft)}
.rs .it button{width:36px;height:36px;border-radius:10px;border:0;background:none;cursor:pointer;display:grid;place-items:center;--ic-ink:var(--muted)}
.rs .it button:hover{background:var(--bg-alt);--ic-ink:var(--c-cus)}
.rs .it .sbi{width:18px;height:18px}
.rs .ih{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.rs .add{height:42px;border:1.5px dashed var(--line);border-radius:12px;background:none;cursor:pointer;font-weight:700;color:var(--royal);display:flex;align-items:center;justify-content:center;gap:6px;--ic-ink:var(--royal);font-size:14.5px}
.rs .add:hover{border-color:var(--royal)}
.rs .add .sbi{width:18px;height:18px}
.rs .sw{display:flex;gap:8px;flex-wrap:wrap}
.rs .sw button{width:32px;height:32px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;background:var(--c)}
.rs .sw button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--ink)}
.rs .ig-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:16px}
.rs .rem{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer}
.rs .rem input{width:18px;height:18px;accent-color:var(--royal)}

.rs .pvw{position:sticky;top:92px;display:grid;gap:14px;min-width:0}
.rs .paper,.ig-print .paper{background:#fff;border-radius:18px;box-shadow:var(--shadow);border:1px solid var(--line);padding:36px;font-size:14px;line-height:1.45;color:var(--ink);min-height:0;aspect-ratio:1/1.3;display:flex;flex-direction:column;gap:22px;overflow:hidden;font-family:var(--fb)}
.rs .paper .top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.rs .paper .lg{width:48px;height:48px;border-radius:14px;background:var(--acc);color:#fff;display:grid;place-items:center;font:800 18px var(--fd);flex:none}
.rs .paper .lg-img{max-width:150px;max-height:64px;object-fit:contain;display:block}
.rs .paper h2{font:800 30px var(--fd);letter-spacing:-.04em;text-align:right;margin:0;color:var(--ink)}
.rs .paper .no{color:var(--muted);text-align:right;font-weight:600;overflow-wrap:anywhere}
.rs .paper .pp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.rs .paper .pp>div{min-width:0;overflow-wrap:anywhere;white-space:pre-line}
.rs .paper .pp small{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.rs .paper .ph{color:var(--muted)}
.rs .paper table{width:100%;border-collapse:collapse;table-layout:auto}
.rs .paper th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 0;border-bottom:2px solid var(--acc);font-weight:700}
.rs .paper td{padding:10px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:top}
.rs .paper td:first-child{overflow-wrap:anywhere;padding-right:10px}
.rs .paper th:not(:first-child),.rs .paper td:not(:first-child){text-align:right;padding-left:10px;white-space:nowrap}
.rs .paper .tot{margin-left:auto;width:min(280px,100%);display:grid;gap:6px;font-variant-numeric:tabular-nums}
.rs .paper .tot div{display:flex;justify-content:space-between;gap:12px}
.rs .paper .tot .gt{border-top:2px solid var(--ink);padding-top:8px;font:800 20px var(--fd)}
.rs .paper .tot .gt span:last-child{color:var(--acc)}
.rs .paper .nt{margin-top:auto;color:var(--ink-2);font-size:13px;border-top:1px solid var(--line);padding-top:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.rs .acts{display:flex;gap:10px;flex-wrap:wrap}
.rs .ig-hint{font-size:13px;margin:0}
.rs .how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rs .how>div{display:grid;gap:8px;align-content:start}
.rs .how b{font:750 18px var(--fd)}
.rs .how p{color:var(--ink-2);font-size:15px}

@media (max-width:980px){.rs .ig{grid-template-columns:minmax(0,1fr)}.rs .pvw{position:static}}
@media (max-width:620px){
  .rs .pane{padding:18px;border-radius:20px}
  .rs .fg,.rs .how,.rs .paper .pp{grid-template-columns:minmax(0,1fr)}
  .rs .paper{aspect-ratio:auto;padding:22px}
  .rs .paper h2{font-size:24px}
  .rs .it{grid-template-columns:minmax(0,1fr) 48px 78px 32px;gap:6px}
  .rs .it input{padding:0 8px}
}

@media screen{.ig-print{display:none!important}}

/* Print: only the invoice. res-invoice-generator.js copies the preview into
   body > .rs.ig-print before printing (and removes it afterwards). */
@media print{
  @page{size:A4;margin:14mm}
  html.ig-printing body>*:not(.ig-print){display:none!important}
  html.ig-printing body{background:#fff!important;margin:0;padding:0}
  .ig-print{display:block!important}
  .ig-print .paper{box-shadow:none;border:0;border-radius:0;padding:0;aspect-ratio:auto;min-height:250mm;overflow:visible;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ig-print .paper tr{break-inside:avoid}
  /* Without the script, printing the page still gives just the invoice. */
  html:not(.ig-printing) body *{visibility:hidden}
  html:not(.ig-printing) .rs .paper,html:not(.ig-printing) .rs .paper *{visibility:visible}
  html:not(.ig-printing) .rs .paper{position:absolute;left:0;top:0;width:100%;box-shadow:none;border:0;aspect-ratio:auto}
}
