@font-face{font-family:Satoshi;font-weight:400;font-display:swap;src:url(/fonts/satoshi-400.woff2)format("woff2")}@font-face{font-family:Satoshi;font-weight:500;font-display:swap;src:url(/fonts/satoshi-500.woff2)format("woff2")}@font-face{font-family:Satoshi;font-weight:700;font-display:swap;src:url(/fonts/satoshi-700.woff2)format("woff2")}@font-face{font-family:Satoshi;font-weight:900;font-display:swap;src:url(/fonts/satoshi-900.woff2)format("woff2")}@font-face{font-family:Sedgwick Ave;font-weight:400;font-display:swap;src:url(/fonts/sedgwick-400.woff2)format("woff2")}:root{--ink:#131311;--ink-2:#41413f;--ink-3:#62625e;--line:#e2e1dc;--line-2:#d3d1ca;--bg:#fafafa;--panel:#fff;--cream:#f2f1ec;--lime:#c6fd50;--lime-deep:#aee63a;--dark:#1c1d1a;--dark-2:#2a2a27;--on-dark:#fafafa;--on-dark-2:#b9b8b2;--red:#b3261e;--red-bg:#fbecea;--amber:#8a5a00;--amber-bg:#fdf3dc;--green:#1f6b2e;--green-bg:#e7f4e4;--r:12px;--r-sm:8px;--slab:1px 1px 0 var(--ink), 2px 2px 0 var(--ink), 3px 3px 0 var(--ink), 4px 4px 0 var(--ink);--focus:0 0 0 3px #aee63a8c}*{box-sizing:border-box}html,body{margin:0}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Satoshi,system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{letter-spacing:-.02em;margin:0}h1{letter-spacing:-.035em;font-size:1.75rem;font-weight:900}h2{font-size:1.15rem;font-weight:700}p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus);outline:none}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--ink-3)}.small{font-size:.85rem}.hand{font-family:Sedgwick Ave,cursive}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--dark);height:100vh;min-height:100%;max-height:100vh;color:var(--on-dark);flex-direction:column;align-self:stretch;gap:1.25rem;padding:1.25rem .9rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.6rem;padding:.2rem .5rem .6rem;text-decoration:none;display:flex}.brand b{background:var(--lime);width:42px;height:30px;color:var(--ink);letter-spacing:-.03em;border:2px solid #000;border-radius:8px;place-items:center;font-size:.85rem;font-weight:900;display:grid;transform:rotate(-5deg)}.brand span{letter-spacing:-.03em;font-weight:900}.brand small{color:var(--on-dark-2);font-family:Sedgwick Ave,cursive;font-size:.8rem;line-height:1;display:block}.nav{gap:2px;display:grid}.nav a{border-radius:var(--r-sm);color:var(--on-dark-2);align-items:center;gap:.65rem;padding:.55rem .7rem;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:var(--dark-2);color:var(--on-dark)}.nav a.active{background:var(--lime);color:var(--ink);font-weight:700}.nav svg{flex:none;width:18px;height:18px}.nav-label{letter-spacing:.08em;text-transform:uppercase;color:#8d8c86;margin-top:.6rem;padding:0 .7rem;font-size:.7rem;font-weight:700}.side-foot{border-top:1px solid var(--dark-2);color:var(--on-dark-2);align-items:center;gap:.6rem;margin-top:auto;padding:.6rem .5rem 0;font-size:.85rem;display:flex}.side-foot .who{flex:1;min-width:0}.side-foot .who>div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.role{background:var(--dark-2);color:var(--lime);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:700;display:inline-block}.main{min-width:0;padding:2rem clamp(1rem,3vw,2.5rem) 4rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.page-head p{color:var(--ink-3);margin-top:.2rem}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.topbar{display:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}.panel+.panel,.stack>*+*{margin-top:1.25rem}.grid>.panel{margin-top:0}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:.9rem 1.1rem;display:flex}.panel-body{padding:1.1rem}.cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem}.card .k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}.card .v{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:.3rem;font-size:1.6rem;font-weight:900}.card .s{color:var(--ink-3);margin-top:.2rem;font-size:.85rem}.card.feature{background:var(--dark);color:var(--on-dark);border-color:var(--dark)}.card.feature .k,.card.feature .s{color:var(--on-dark-2)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.6rem .9rem}th{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;background:var(--cream);white-space:nowrap;font-size:.75rem;font-weight:700}tbody tr:last-child td{border-bottom:0}tr.click{cursor:pointer}tr.click:hover td{background:#f7f7f3}tfoot td{border-bottom:0;font-weight:700}tfoot tr:first-child td{border-top:2px solid var(--ink)}tfoot tr.grand td{border-top:2px solid var(--ink);font-size:1.05rem;font-weight:900}tr.group td{background:var(--cream);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);font-size:.8rem;font-weight:700}.empty{text-align:center;color:var(--ink-3);padding:2.5rem 1rem}.empty strong{color:var(--ink);margin-bottom:.2rem;display:block}.btn{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--panel);cursor:pointer;justify-content:center;align-items:center;gap:.45rem;min-height:40px;padding:.5rem 1rem;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:hover{box-shadow:var(--slab);transform:translate(-2px,-2px)}.btn:active{box-shadow:none;transform:none}.btn.primary{background:var(--lime)}.btn.dark{background:var(--ink);color:var(--lime)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--cream);box-shadow:none;transform:none}.btn.danger{color:var(--red);border-color:var(--red)}.btn.small{min-height:32px;padding:.25rem .7rem;font-size:.85rem}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.field{gap:.3rem;display:grid}.field>span{color:var(--ink-2);font-size:.8rem;font-weight:700}.field .hint{color:var(--ink-3);font-size:.8rem}input,select,textarea{border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:#fff;width:100%;min-height:40px;padding:.45rem .7rem}input:hover,select:hover,textarea:hover{border-color:var(--ink-3)}input:focus,select:focus,textarea:focus{border-color:var(--ink);box-shadow:var(--focus);outline:none}textarea{resize:vertical;min-height:80px}input.num{text-align:right}.grid{align-items:start;gap:1rem;display:grid}.nowrap{white-space:nowrap}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.seg{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:3px;display:inline-flex}.seg button{white-space:nowrap;cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:7px;padding:.35rem .9rem;font-weight:700}.seg button.on{background:var(--ink);color:var(--lime)}.tabs{border-bottom:1px solid var(--line);gap:.25rem;margin-bottom:1.25rem;display:flex}.tabs button{color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-1px;padding:.6rem .9rem;font-weight:700}.tabs button.on{color:var(--ink);border-color:var(--lime-deep)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.toolbar-fields{flex-wrap:wrap;gap:1rem;display:flex}tr.subtotal td{border-top:1px solid var(--ink-3);font-weight:700}.card.pick{font:inherit;color:inherit;text-align:left;cursor:pointer;transition:transform .12s,box-shadow .12s}.card.pick:hover{box-shadow:var(--slab);transform:translate(-2px,-2px)}.card.pick.on{border:2px solid var(--ink);box-shadow:var(--slab);transform:translate(-2px,-2px)}.chips{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.chips button{border:1.5px solid var(--line-2);cursor:pointer;color:var(--ink-2);background:#fff;border-radius:999px;padding:.25rem .8rem;font-size:.85rem;font-weight:700}.chips button:hover{border-color:var(--ink-3)}.chips button.on{background:var(--ink);color:var(--lime);border-color:var(--ink)}.clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:420px;display:-webkit-box;overflow:hidden}.dl{grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:0;display:grid}.dl dt{color:var(--ink-3);font-size:.85rem}.dl dd{overflow-wrap:anywhere;margin:0;font-weight:500}.timeform{grid-template-columns:1fr 90px 2fr auto;align-items:end}.nav-count{background:var(--red);color:#fff;text-align:center;border-radius:999px;min-width:20px;margin-left:auto;padding:0 6px;font-size:.72rem;font-weight:700;line-height:20px}.nav a.active .nav-count{background:var(--ink);color:var(--lime)}.badge{text-transform:capitalize;background:var(--cream);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.badge.issued{background:var(--amber-bg);color:var(--amber);border-color:#f3dfb0}.badge.paid,.badge.ok{background:var(--green-bg);color:var(--green);border-color:#c9e6c2}.badge.void,.badge.bad{background:var(--red-bg);color:var(--red);border-color:#f1c9c5}.badge.draft{background:#fff}.badge.plain{text-transform:none}.badge.overdue{background:var(--red-bg);color:var(--red);border-color:#f1c9c5}.alert{border-radius:var(--r-sm);border:1px solid;padding:.75rem 1rem;font-weight:500}.alert.error{background:var(--red-bg);color:var(--red);border-color:#f1c9c5}.alert.ok{background:var(--green-bg);color:var(--green);border-color:#c9e6c2}.alert.info{background:var(--cream);border-color:var(--line);color:var(--ink-2)}.diff{font-weight:700}.diff.ok{color:var(--green)}.diff.bad{color:var(--red)}.modal-back{z-index:50;background:#13131173;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:2px solid var(--ink);border-radius:var(--r);width:min(560px,100%);max-height:calc(100vh - 2rem);box-shadow:6px 6px 0 var(--ink);overflow:auto}.modal .panel-head{background:var(--panel);position:sticky;top:0}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:.5rem;padding:.9rem 1.1rem;display:flex}.drop{border:2px dashed var(--line-2);border-radius:var(--r-sm);text-align:center;color:var(--ink-3);cursor:pointer;place-items:center;gap:.25rem;padding:1.1rem;display:grid}.drop:hover,.drop.over{border-color:var(--ink);color:var(--ink);background:#fbfbf7}.files{gap:.4rem;margin:0 0 .75rem;padding:0;list-style:none;display:grid}.files li{border:1px solid var(--line);border-radius:var(--r-sm);align-items:center;gap:.6rem;padding:.45rem .6rem;display:flex}.files li .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ext{background:var(--ink);width:34px;height:24px;color:var(--lime);border-radius:5px;place-items:center;font-size:.65rem;font-weight:900;display:grid}.signin{background:var(--dark);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.signin-card{background:var(--panel);border:2px solid #000;border-radius:16px;width:min(420px,100%);padding:2rem;box-shadow:8px 8px #000}.signin-card h1{margin:.75rem 0 .25rem;font-size:1.5rem}.doc{border:1px solid var(--line);border-radius:var(--r);background:#fff;max-width:820px;margin:0 auto;padding:3rem}.doc-head{border-bottom:2px solid var(--ink);justify-content:space-between;gap:2rem;padding-bottom:1.5rem;display:flex}.doc-mark{align-items:center;gap:.7rem;display:flex}.doc-mark b{background:var(--lime);border:2.5px solid var(--ink);width:64px;height:46px;box-shadow:3px 3px 0 var(--ink);border-radius:10px;place-items:center;font-size:1.2rem;font-weight:900;display:grid;transform:rotate(-5deg)}.doc-mark strong{letter-spacing:-.03em;font-size:1.4rem;font-weight:900;line-height:1;display:block}.doc-mark small{color:var(--ink-2);font-family:Sedgwick Ave,cursive}.doc h1{text-align:right;font-size:2rem}.doc-meta{grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem 0;display:grid}.doc-meta dl{grid-template-columns:auto 1fr;gap:.2rem 1rem;margin:0;display:grid}.doc-meta dt{color:var(--ink-3)}.doc-meta dd{text-align:right;margin:0;font-weight:700}.doc table th{background:var(--ink);color:var(--lime)}.inv-totals{border-top:2px solid var(--ink);justify-content:end;padding:.9rem 1.1rem;display:grid}.inv-totals div{justify-content:space-between;gap:3rem;padding:.15rem 0;display:flex}.inv-totals .grand{border-top:2px solid var(--ink);margin-top:.3rem;padding-top:.45rem;font-size:1.1rem;font-weight:900}.doc-totals{width:300px;margin:1rem 0 0 auto}.doc-totals div{justify-content:space-between;padding:.35rem 0;display:flex}.doc-totals .grand{border-top:2px solid var(--ink);margin-top:.3rem;padding-top:.6rem;font-size:1.2rem;font-weight:900}.doc-foot{border-top:1px solid var(--line);color:var(--ink-3);margin-top:2.5rem;padding-top:1rem;font-size:.8rem}@media print{.side,.no-print,.topbar{display:none!important}.shell{display:block}.main{padding:0}body{background:#fff}.doc{border:0;max-width:none;padding:0}.doc table th,.doc-mark b{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (width<=900px){.shell{grid-template-columns:1fr;align-content:start}.hide-sm{display:none}.side{z-index:40;width:260px;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.side.open{transform:none}.topbar{z-index:30;background:var(--dark);color:var(--on-dark);justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex;position:sticky;top:0}.main{padding-top:1.25rem}.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}.timeform{grid-template-columns:1fr 1fr}.doc{padding:1.25rem}.doc-head,.doc-meta{flex-direction:column;grid-template-columns:1fr}}
