@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,500;8..60,600&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap");:root{--paper:#f6f1e4;--paper-2:#efe8d6;--white:#fff;--ink:#1e2433;--ink-soft:#4a5164;--brass:#8c6a28;--brass-deep:#6b5220;--line:#d9d0ba;--danger-bg:#f7e3e1;--danger-text:#8a2e23;--warn-bg:#f5ead2;--warn-text:#7a5a12;--ok-bg:#e4eee1;--ok-text:#2f5b2a}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:IBM Plex Sans,sans-serif;-webkit-font-smoothing:antialiased}.serif,h1,h2,h3{font-family:"Source Serif 4",serif}.mono{font-family:IBM Plex Mono,monospace}a{color:var(--brass-deep)}.btn,button{height:42px;padding:0 18px;background:var(--ink);color:var(--paper);border:none;border-radius:4px;font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:14px;cursor:pointer}.btn:hover,button:hover{background:var(--brass-deep)}.btn.secondary,button.secondary{background:var(--white);color:var(--ink);border:1px solid var(--line)}.btn.secondary:hover,button.secondary:hover{background:var(--paper-2)}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{width:100%;padding:0 12px;height:42px;border:1px solid var(--line);border-radius:4px;background:var(--white);font-family:IBM Plex Sans,sans-serif;font-size:14px;color:var(--ink);outline:none}textarea{height:auto;padding:10px 12px;min-height:80px}input:focus,select:focus,textarea:focus{border-color:var(--brass)}label{display:block;font-size:12px;font-weight:500;color:var(--ink-soft);margin-bottom:4px}.field{margin-bottom:14px}.card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:1.25rem 1.5rem}.nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--line);background:var(--paper)}.nav .wordmark{font-family:"Source Serif 4",serif;font-weight:600;font-size:18px}.nav a.navlink{font-size:13px;color:var(--ink-soft);text-decoration:none;margin-left:18px}.nav a.navlink:hover{color:var(--ink)}.wrap{max-width:900px;margin:0 auto;padding:1.75rem 1.5rem 3rem}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-weight:500;color:var(--ink-soft);padding:8px 10px;font-size:12px}td,th{border-bottom:1px solid var(--line)}td{padding:9px 10px}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--paper-2)}.badge{font-size:11.5px;padding:3px 9px;border-radius:3px;display:inline-block}.badge.draft{background:var(--paper-2);color:var(--ink-soft)}.badge.invoiced{background:var(--warn-bg);color:var(--warn-text)}.badge.overdue{background:var(--danger-bg);color:var(--danger-text)}.badge.paid{background:var(--ok-bg);color:var(--ok-text)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px;margin-bottom:1.5rem}.stat-card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:1rem}.stat-label{font-size:12px;color:var(--ink-soft);margin-bottom:4px}.stat-value{font-size:22px;font-weight:600;font-family:"Source Serif 4",serif}.error-text{color:var(--danger-text);font-size:13px;margin-top:8px}.muted{color:var(--ink-soft);font-size:13px}.row-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;gap:10px}.invoice-sheet{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:2.25rem 2.5rem;max-width:680px}.invoice-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.invoice-biz-name{font-size:1.25rem;font-weight:600;margin-bottom:2px}.label-small{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);margin-bottom:4px}.invoice-billto{display:flex;gap:3rem;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:13px}.invoice-totals{margin-left:auto;width:240px;margin-top:16px}.invoice-total-row{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.invoice-total-row.due{font-size:1.05rem;font-weight:600;border-top:1px solid var(--ink);margin-top:6px;padding-top:10px}@media print{.nav,.no-print{display:none!important}body{background:#fff}.wrap{padding:0;max-width:none}.invoice-sheet{border:none;max-width:none}}