:root{--desk:#e7e7e2;--dot:#c9c9c2;--sheet:#fbfbf8;--sheet-2:#f3f3ef;--ink:#232528;--ink-2:#565a60;--ink-3:#868a90;--rule:#d9d8d2;--rule-strong:#b9b8b1;--blue:#2a5b82;--blue-ink:#1f4766;--blue-wash:#e2eaf1;--good:#3b6a49;--good-wash:#e3ede5;--warn:#8a5f10;--warn-wash:#f3ead6;--bad:#a03a2b;--bad-wash:#f4e1dd;--radius:3px;--rail:232px;--font:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--desk);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:15px;line-height:1.5}*{box-sizing:border-box}html,body{margin:0}body{background-color:var(--desk);background-image:radial-gradient(var(--dot) .9px, transparent 1px);background-size:20px 20px;min-height:100vh}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.05rem}h3{font-size:.95rem}p{margin:0}a{color:var(--blue);text-underline-offset:2px;text-decoration-thickness:1px}small{font-size:.8rem}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.icon{flex:none}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.num,.money{font-variant-numeric:tabular-nums;white-space:nowrap}.money.is-negative{color:var(--bad)}.money.is-strong{font-weight:600}.right{text-align:right}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.spacer{flex:1}.stack{gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.25rem;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem 1.25rem;display:grid}.span-2{grid-column:span 2}@media (width<=720px){.grid-2,.grid-3{grid-template-columns:1fr}.span-2{grid-column:auto}}.env-strip{z-index:50;text-align:center;color:#fff;padding:.35rem 1rem;font-size:.8rem;font-weight:600;position:sticky;top:0}.env-strip.is-staging{background:#b5701a}.env-strip.is-development{background:#55589c}.shell{grid-template-columns:var(--rail) minmax(0, 1fr);min-height:100vh;display:grid}.rail{background:var(--sheet);border-right:1px solid var(--rule);flex-direction:column;gap:1.25rem;height:100vh;padding:1.25rem .9rem;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{align-items:center;gap:.6rem;padding:0 .35rem;display:flex}.rail-mark{border:1.5px solid var(--ink);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.72rem;font-weight:700;display:grid}.rail-company{font-weight:600;line-height:1.2}.rail-company small{color:var(--ink-3);font-weight:400;display:block}.rail nav{gap:1rem;display:grid}.rail-group{gap:1px;display:grid}.rail-group-name{color:var(--ink-3);padding:0 .6rem .2rem;font-size:.78rem}.rail a.rail-link{border-radius:var(--radius);color:var(--ink-2);justify-content:space-between;align-items:center;padding:.42rem .6rem;text-decoration:none;display:flex}.rail a.rail-link:hover{background:var(--sheet-2);color:var(--ink)}.rail a.rail-link.active{background:var(--ink);color:var(--sheet)}.rail-foot{gap:.5rem;margin-top:auto;padding:0 .35rem;font-size:.85rem;display:grid}.rail-foot button.link{all:unset;cursor:pointer;color:var(--ink-2)}.rail-foot button.link:hover{color:var(--ink);text-decoration:underline}.rail-switch select{width:100%}.main{min-width:0;padding:1.75rem 2rem 4rem}.page{gap:1.25rem;max-width:1180px;margin:0 auto;display:grid}.page.is-narrow{max-width:760px}.topbar{display:none}@media (width<=900px){.shell{grid-template-columns:1fr}.rail{z-index:40;width:260px;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:0 0 40px #00000026}.rail.is-open{transform:none}.topbar{z-index:30;background:var(--sheet);border-bottom:1px solid var(--rule);align-items:center;gap:.75rem;padding:.6rem 16px;display:flex;position:sticky;top:0}.main{padding:1.25rem 16px 4rem}.scrim{z-index:35;background:#14161940;position:fixed;inset:0}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-head-title{align-items:flex-start;gap:.6rem;min-width:0;display:flex}.page-head h1{overflow-wrap:anywhere}.page-sub{color:var(--ink-2);margin-top:.2rem}.page-actions{flex-wrap:wrap;gap:.5rem;display:flex}.back{width:32px;height:32px;color:var(--ink-2);border:1px solid var(--rule);background:var(--sheet);border-radius:50%;place-items:center;margin-top:2px;display:grid}.back:hover{color:var(--ink);border-color:var(--rule-strong)}.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);padding:1.25rem 1.4rem}.sheet.flush{padding:0}.sheet-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem;display:flex}.sheet.flush .sheet-head{padding:1rem 1.4rem 0}.section-gap{margin-top:1.5rem}.btn{font:inherit;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;min-height:36px;padding:0 .95rem;font-size:.92rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-ink)}.btn-secondary{background:var(--sheet);color:var(--ink);border-color:var(--rule-strong)}.btn-secondary:hover:not(:disabled){border-color:var(--ink-2)}.btn-quiet{color:var(--ink-2);background:0 0}.btn-quiet:hover:not(:disabled){color:var(--ink);background:var(--sheet-2)}.btn-danger{background:var(--sheet);color:var(--bad);border-color:#d9b2ab}.btn-danger:hover:not(:disabled){background:var(--bad-wash)}.icon-btn{all:unset;cursor:pointer;width:32px;height:32px;color:var(--ink-2);border-radius:50%;place-items:center;display:grid}.icon-btn:hover{background:var(--sheet-2);color:var(--ink)}.icon-btn:focus-visible{outline:2px solid var(--blue)}.field{gap:.2rem;min-width:0;display:grid}.field label{color:var(--ink-2);font-size:.82rem}.field input,.field select,.field textarea,.search input,select.inline,input.inline{font:inherit;color:var(--ink);border:none;border-bottom:1px solid var(--rule-strong);background:0 0;border-radius:0;width:100%;padding:.45rem .1rem}.field textarea{resize:vertical;border:1px solid var(--rule-strong);border-radius:var(--radius);background:#fff;min-height:4.5rem;padding:.5rem .55rem;line-height:1.45}.field select,select.inline{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);background-position:calc(100% - 9px) 55%,calc(100% - 4px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:1.4rem}.field input:focus,.field select:focus,.search input:focus,input.inline:focus,select.inline:focus{border-bottom:1.5px solid var(--blue);outline:none}.field textarea:focus{border-color:var(--blue);outline:none}.field input[aria-invalid]{border-bottom-color:var(--bad)}.field input:disabled,.field select:disabled,.field textarea:disabled,.hint{color:var(--ink-3)}.field-error{color:var(--bad)}.check{cursor:pointer;align-items:flex-start;gap:.6rem;display:flex}.check input{opacity:0;width:1px;height:1px;position:absolute}.check-box{border:1.5px solid var(--ink-2);background:#fff;border-radius:2px;flex:none;place-items:center;width:18px;height:18px;margin-top:2px;display:grid}.check input:checked+.check-box{background:var(--ink);border-color:var(--ink)}.check input:checked+.check-box:after{content:"";border-top:0;border-bottom:2px solid #fff;border-left:2px solid #fff;border-right:0;width:9px;height:5px;transform:translateY(-1px)rotate(-45deg)}.check input:focus-visible+.check-box{outline:2px solid var(--blue);outline-offset:2px}.check.is-disabled{opacity:.55;cursor:not-allowed}.check-label,.check .hint{display:block}.search{color:var(--ink-3);align-items:center;gap:.4rem;min-width:220px;display:flex}.search input{padding-left:0}.table-wrap{overflow-x:auto}table.ledger{border-collapse:collapse;width:100%;font-size:.93rem}.ledger th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--rule-strong);white-space:nowrap;padding:.55rem .7rem;font-size:.8rem;font-weight:500}.ledger td{border-bottom:1px solid var(--rule);vertical-align:middle;padding:.62rem .7rem}.ledger tr:last-child td{border-bottom:none}.ledger th.right,.ledger td.right{text-align:right}.ledger tbody tr.clickable{cursor:pointer}.ledger tbody tr.clickable:hover td{background:var(--sheet-2)}.ledger td a{color:var(--ink);font-weight:500;text-decoration:none}.ledger td a:hover{color:var(--blue);text-decoration:underline}.ledger tfoot td{border-top:1px solid var(--rule-strong);border-bottom:none;font-weight:600}.sheet.flush .ledger th:first-child,.sheet.flush .ledger td:first-child{padding-left:1.4rem}.sheet.flush .ledger th:last-child,.sheet.flush .ledger td:last-child{padding-right:1.4rem}.status{white-space:nowrap;color:var(--ink-2);background:0 0;border:1px solid;border-radius:2px;padding:.28rem .45rem;font-size:.78rem;font-weight:600;line-height:1;display:inline-block}.status-paid,.status-accepted{color:var(--good);background:var(--good-wash);border-color:#0000}.status-overdue,.status-declined{color:var(--bad);background:var(--bad-wash);border-color:#0000}.status-part_paid,.status-expired{color:var(--warn);background:var(--warn-wash);border-color:#0000}.status-sent,.status-issued,.status-unpaid{color:var(--blue);background:var(--blue-wash);border-color:#0000}.status-draft{color:var(--ink-3);border-style:dashed}.note{border-left:3px solid var(--blue);background:var(--blue-wash);border-radius:0 var(--radius) var(--radius) 0;padding:.7rem .9rem}.note-error{border-color:var(--bad);background:var(--bad-wash)}.note-warn{border-color:var(--warn);background:var(--warn-wash)}.note-good{border-color:var(--good);background:var(--good-wash)}.loading{color:var(--ink-3);padding:1rem 0}.empty{text-align:center;justify-items:center;gap:.5rem;padding:2.5rem 1rem;display:grid}.empty-title{font-weight:600}.empty-text{color:var(--ink-2);max-width:46ch}.figures{border:1px solid var(--rule);border-radius:var(--radius);background:var(--sheet);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.figure{border-right:1px solid var(--rule);gap:.15rem;padding:1.1rem 1.25rem;display:grid}.figure:last-child{border-right:none}.figure-value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.45rem;font-weight:600}.figure-label{color:var(--ink-2);font-size:.85rem}.figure.is-bad .figure-value{color:var(--bad)}.figure.is-good .figure-value{color:var(--good)}@media (width<=720px){.figure{border-right:none;border-bottom:1px solid var(--rule)}}.tabs{border-bottom:1px solid var(--rule);gap:.25rem;display:flex;overflow-x:auto}.tabs button{all:unset;cursor:pointer;color:var(--ink-2);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.55rem .8rem}.tabs button:hover{color:var(--ink)}.tabs button.is-on{color:var(--ink);border-bottom-color:var(--ink);font-weight:500}.tabs button:focus-visible{outline:2px solid var(--blue)}dialog.modal{background:0 0;border:none;width:100%;max-width:min(560px,100vw - 32px);padding:0}dialog.modal.is-wide{max-width:min(860px,100vw - 32px)}dialog.modal::backdrop{background:#1c1e2152}.modal-sheet{background:var(--sheet);border-radius:var(--radius);border:1px solid var(--rule);flex-direction:column;max-height:calc(100vh - 48px);display:flex;box-shadow:0 24px 60px -20px #00000059}.modal-head{justify-content:space-between;align-items:center;padding:1rem 1.25rem .6rem;display:flex}.modal-body{gap:1rem;padding:.5rem 1.25rem 1.25rem;display:grid;overflow-y:auto}.modal-foot{border-top:1px solid var(--rule);justify-content:flex-end;gap:.5rem;padding:.9rem 1.25rem;display:flex}.toasts{z-index:100;gap:.5rem;max-width:min(420px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{border-radius:var(--radius);background:var(--ink);color:var(--sheet);padding:.7rem 1rem;box-shadow:0 12px 30px -12px #0006}.toast-error{background:var(--bad)}.licence{border-bottom:1px solid var(--rule);padding:.6rem 2rem;font-size:.9rem}.licence.is-grace{background:var(--warn-wash);color:var(--warn)}.licence.is-read_only{background:var(--bad-wash);color:var(--bad)}.licence.is-soon{background:var(--blue-wash);color:var(--blue-ink)}.signin{place-items:center;min-height:100vh;padding:16px;display:grid}.signin-sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);gap:1.4rem;width:100%;max-width:380px;padding:2.25rem 2rem 2rem;display:grid}.signin-brand{align-items:center;gap:.7rem;display:flex}.signin-brand img{object-fit:contain;max-width:160px;max-height:44px}.signin-brand p{color:var(--ink-2);font-size:.9rem}.signin form{gap:1rem;display:grid}.signin .btn{width:100%;min-height:42px}.signin-foot{text-align:center;color:var(--ink-3);font-size:.85rem}.signin-foot button{all:unset;cursor:pointer;color:var(--ink-2);text-decoration:underline}.doc-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:1.25rem;display:grid}.doc-side{gap:1rem;display:grid;position:sticky;top:1rem}@media (width<=1100px){.doc-layout{grid-template-columns:1fr}.doc-side{position:static}}.kv{gap:.45rem;display:grid}.kv>div{justify-content:space-between;gap:1rem;display:flex}.kv dt{color:var(--ink-2)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.kv .is-total{border-top:1px solid var(--rule);padding-top:.45rem;font-weight:600}.lines-editor{border-collapse:collapse;width:100%}.lines-editor th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--rule-strong);padding:.3rem .4rem;font-size:.8rem;font-weight:500}.lines-editor td{border-bottom:1px solid var(--rule);vertical-align:top;padding:.35rem .4rem}.lines-editor input,.lines-editor textarea{font:inherit;width:100%;color:var(--ink);background:0 0;border:none;border-bottom:1px solid #0000;padding:.3rem .1rem}.lines-editor textarea{resize:vertical;min-height:2.1rem;line-height:1.4}.lines-editor input:hover,.lines-editor textarea:hover{border-bottom-color:var(--rule-strong)}.lines-editor input:focus,.lines-editor textarea:focus{border-bottom-color:var(--blue);outline:none}.lines-editor .n{text-align:right;width:86px}.lines-editor .n input{text-align:right}.lines-editor .amount{text-align:right;font-variant-numeric:tabular-nums;width:110px;padding-top:.6rem}.lines-editor .x{width:34px}@media (width<=720px){.lines-editor thead{display:none}.lines-editor tr{border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr) 34px;padding:.4rem 0;display:grid}.lines-editor td{border:none}.lines-editor td.desc{grid-column:1/-1}.lines-editor .n,.lines-editor .amount{width:auto}}.design-layout{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.design-controls{gap:1.25rem;display:grid}.design-preview{background:var(--sheet-2);border:1px solid var(--rule);border-radius:var(--radius);padding:1.25rem;position:sticky;top:1rem}@media (width<=1100px){.design-layout{grid-template-columns:1fr}.design-preview{position:static}}.range{grid-template-columns:1fr auto;align-items:center;gap:.2rem .75rem;display:grid}.range label{color:var(--ink-2);font-size:.82rem}.range output{font-variant-numeric:tabular-nums;font-size:.85rem}.range input{accent-color:var(--ink);grid-column:1/-1;width:100%}.swatch-input{align-items:center;gap:.5rem;display:flex}.swatch-input input[type=color]{border:1px solid var(--rule-strong);cursor:pointer;background:0 0;border-radius:2px;width:36px;height:30px;padding:0}textarea.code{min-height:9rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82rem}fieldset{border:none;gap:.9rem;margin:0;padding:0;display:grid}legend{margin-bottom:.6rem;padding:0;font-weight:600}.switch-row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem 1.25rem;padding:.85rem 0;display:grid}.switch-row:last-child{border-bottom:none}.switch-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:1rem;font-size:.85rem;display:flex}.switch-meta input{width:90px}.toggle{flex:none;width:42px;height:24px;position:relative}.toggle input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.toggle span{background:var(--rule-strong);pointer-events:none;border-radius:12px;transition:background .15s;position:absolute;inset:0}.toggle span:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked+span{background:var(--good)}.toggle input:checked+span:after{transform:translate(18px)}.toggle input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}.toggle input:disabled+span{opacity:.5}.tag{background:var(--sheet-2);color:var(--ink-2);border:1px solid var(--rule);border-radius:2px;padding:.1rem .4rem;font-size:.75rem;display:inline-block}.footer-version{text-align:center;color:var(--ink-3);padding-top:2rem;font-size:.78rem}.only-print{display:none}@media print{body{background:#fff}.rail,.topbar,.page-head,.doc-side,.env-strip,.licence,.no-print,.toasts,.footer-version{display:none!important}.shell{display:block}.main{padding:0}.doc-layout,.only-print{display:block}}.ledger td:first-child a{white-space:nowrap}@media (width<=720px){.page-head{flex-direction:column;align-items:stretch}.page-actions .btn{flex:auto}.main{overflow-x:hidden}h1{font-size:1.4rem}}.mono{letter-spacing:.01em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.92em}.qr-box{border:1px solid var(--line,#d9d9d4);background:#fff;border-radius:6px;place-items:center;padding:1rem;display:grid}.qr-box img{display:block}.steps{color:var(--ink-2);gap:.25rem;margin:0;padding-left:1.2rem;font-size:.92rem;display:grid}
