/* Contract/letter helpers (themed) */
.calc-tile { display:flex; flex-direction:column; gap:4px; padding:12px 14px; border-radius:12px;
  background: rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.09); }
.calc-tile span { font-size:11px; color:#9CAABB; }
.calc-tile b { font-family:var(--font-mono); font-size:1.15rem; color:#F4F8FC; }
.calc-tile--due b { color:#FFC26B; }
.logo-preview { width:56px; height:56px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  font-size:11px; color:#7F8EA0; background:#0d141c center/cover no-repeat; border:1px solid rgba(255,255,255,0.1); }

/* ── Print document ── */
#print-area { display:none; }
@media print {
  html, body { background:#fff !important; }
  body.theme-noir::before { content:none !important; display:none !important; }
  body:has(#print-area.print-on) > *:not(#print-area) { display:none !important; }
  #print-area.print-on {
    display:block !important; position:static; color:#111; background:#fff;
    font-family:'Inter', system-ui, sans-serif; font-size:13px; line-height:1.6; padding:0;
  }
  #print-area .pr-head { display:flex; justify-content:space-between; align-items:flex-start;
    border-bottom:2px solid #111; padding-bottom:12px; margin-bottom:18px; }
  #print-area .pr-brand { display:flex; gap:12px; align-items:center; }
  #print-area .pr-logo { width:56px; height:56px; object-fit:cover; border-radius:6px; }
  #print-area .pr-name { font-size:18px; font-weight:800; }
  #print-area .pr-sub { font-size:11px; color:#444; margin-top:2px; }
  #print-area .pr-date { font-size:11px; color:#444; }
  #print-area .pr-title { font-size:17px; font-weight:800; text-align:center; margin:6px 0 16px; }
  #print-area .pr-to { font-size:13px; margin-bottom:8px; font-weight:600; }
  #print-area .pr-table { width:100%; border-collapse:collapse; margin-bottom:14px; }
  #print-area .pr-table th, #print-area .pr-table td { border:1px solid #bbb; padding:7px 10px; text-align:right; }
  #print-area .pr-table th { background:#f2f2f2; font-weight:700; width:120px; white-space:nowrap; }
  #print-area .pr-money th { width:60%; }
  #print-area .pr-money .pr-total th, #print-area .pr-money .pr-total td { background:#f2f2f2; font-weight:800; }
  #print-area .pr-money .pr-due th, #print-area .pr-money .pr-due td { color:#a3390f; font-weight:800; }
  #print-area .pr-terms-title { font-size:14px; font-weight:800; margin:16px 0 6px; }
  #print-area .pr-terms { padding-inline-start:18px; }
  #print-area .pr-terms li { font-size:11px; margin-bottom:5px; }
  #print-area .pr-body { white-space:pre-wrap; font-size:13px; margin:10px 0 40px; }
  #print-area .pr-sign { display:flex; justify-content:space-between; gap:40px; margin-top:44px; }
  #print-area .pr-sign--one { justify-content:flex-start; }
  #print-area .pr-sign > div { flex:1; max-width:240px; }
  #print-area .pr-sign-line { border-top:1px solid #111; margin-bottom:6px; }
  #print-area .pr-sign-label { font-size:12px; }
  @page { margin:16mm; }
}
