:root{--paper:#f3efe6;--paper-2:#efeadf;--card:#fbf9f4;--white:#fff;--ink:#17140f;--ink2:#5b554a;--ink3:#6f695d;--field-line:#8a8375;--rule:#d9d2c2;--rule2:#e8e2d4;--red:#d60604;--red-text:#c00503;--red-soft:#fbe6e3;--red-line:#e7b7b4;--green:#1f6b45;--green-soft:#e2efe6;--green-line:#bfd8c8;--amber:#7a5300;--amber-soft:#f6ebcd;--amber-line:#e4d29a;--blue:#2b4c7e;--blue-soft:#e3eaf5;--blue-line:#bccbe3;--serif:"Instrument Serif", Georgia, "Times New Roman", serif;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius:10px;--radius-sm:7px;--shadow-card:0 1px 0 #fff inset, 0 10px 24px -18px #17140f59;--shadow-receipt:0 18px 40px -28px #17140f80;--sidebar:236px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);font:15px/1.45 var(--sans);-webkit-font-smoothing:antialiased;background-image:repeating-linear-gradient(#0000 0 31px,#17140f09 31px 32px)}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px}a:hover{-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red)}p{margin:0 0 12px}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:4px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink2)}.small{font-size:13px}.nowrap{white-space:nowrap}.right{text-align:right}.stack{gap:14px;display:grid}.stack-lg{gap:26px;display:grid}.cluster{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.grow{flex:1}.app{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--rule);background:linear-gradient(180deg, var(--paper-2), var(--paper));flex-direction:column;height:100vh;padding:26px 16px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{font:400 27px/1 var(--serif);letter-spacing:-.01em;padding:0 6px;text-decoration:none;display:block}.brand i{color:var(--red)}.brand small{font:500 10.5px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin-top:8px;display:block}.nav{gap:2px;margin-top:22px;display:grid}.nav-section{font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);padding:14px 10px 4px}.nav a{border-radius:6px;justify-content:space-between;align-items:center;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:#17140f0d}.nav a[aria-current=page]{background:var(--ink);color:var(--paper)}.sidebar-foot{font:400 11.5px/1.5 var(--mono);color:var(--ink2);border-top:1px dashed var(--rule);gap:8px;margin-top:auto;padding:14px 6px 0;display:grid}.sidebar-foot b{color:var(--ink);font-weight:600}.sidebar-foot .dev{color:var(--red);font-weight:600}.linkish{all:unset;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px}.linkish:hover{color:var(--red)}.main{min-width:0;max-width:1240px;padding:34px 44px 80px}.nav-toggle{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.nav-toggle-label{display:none}.nav-body{flex-direction:column;flex:1;min-height:0;display:flex}.loading{padding:40px 0}.loading-bar{background:linear-gradient(90deg, var(--rule2), var(--red), var(--rule2));background-size:200% 100%;border-radius:3px;max-width:420px;height:3px;margin-bottom:14px;animation:1.1s linear infinite loading}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.loading-bar{animation:none}}.unsaved{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--amber);background:var(--amber-soft);border:1px solid var(--amber-line);border-radius:999px;margin:8px 18px;padding:2px 9px;display:inline-block}.savebar{border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;padding:14px 18px;display:flex;position:sticky;bottom:12px}.legend{color:var(--ink2);gap:6px;margin:14px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.legend li{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;display:flex}.page-head .back{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);margin-bottom:10px;text-decoration:none;display:inline-block}.page-head .back:hover{color:var(--red)}h1,.h1{font:400 46px/1.02 var(--serif);letter-spacing:-.015em;margin:0}h1 em,.h1 em{color:var(--red)}.lede{color:var(--ink2);max-width:62ch;margin:10px 0 0}h2,.h2{font:600 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);align-items:center;gap:10px;margin:34px 0 10px;display:flex}h2:after,.h2:after{content:"";border-top:1px solid var(--rule);flex:1}h2 .aside,.h2 .aside{text-transform:none;letter-spacing:0;font:400 12.5px var(--mono);order:2}h3{font:400 26px/1.1 var(--serif);margin:0 0 6px}.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card.pad{padding:18px}.card>.row{border-top:1px solid var(--rule2);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;display:flex}.card>.row:first-child{border-top:0}.grid2{grid-template-columns:minmax(300px,380px) 1fr;align-items:start;gap:26px;display:grid}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:26px;display:grid}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{font:600 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap;padding:10px 18px}td{border-top:1px solid var(--rule2);vertical-align:top;padding:10px 18px}tbody tr:first-child td{border-top:0}tbody tr:hover td{background:#17140f05}td.n,th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}tfoot td{border-top:1px solid var(--rule);font-weight:600}td .sub{font:400 12px var(--mono);color:var(--ink2);margin-top:2px;display:block}.up{color:var(--green)}.down{color:var(--red)}.tag{font:500 11px var(--mono);border:1px solid var(--rule);color:var(--ink2);background:var(--white);white-space:nowrap;border-radius:999px;margin-right:6px;padding:2px 7px;display:inline-block}.tag.red{border-color:var(--red-line);color:var(--red-text);background:var(--red-soft)}.tag.green{border-color:var(--green-line);color:var(--green);background:var(--green-soft)}.tag.amber{border-color:var(--amber-line);color:var(--amber);background:var(--amber-soft)}.tag.blue{border-color:var(--blue-line);color:var(--blue);background:var(--blue-soft)}.tag.ink{border-color:var(--ink);color:var(--paper);background:var(--ink)}.tag.shadow{border-style:dashed}.chip{font:400 11.5px var(--mono);background:var(--white);border:1px solid var(--rule);border-radius:5px;margin:0 6px 6px 0;padding:3px 7px;display:inline-block}.chip i{color:var(--ink2);font-style:normal}.flag{font:600 12px var(--mono);background:var(--amber-soft);color:var(--amber);border-radius:6px;padding:6px 10px;display:inline-block}.amt{font:600 17px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.money{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.money.neg{color:var(--red)}.money.pos{color:var(--green)}.btn{all:unset;box-sizing:border-box;cursor:pointer;background:var(--ink);color:var(--paper);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:8px;padding:9px 16px;font-weight:600;display:inline-flex}.btn:hover{background:var(--red)}.btn:focus-visible{outline:2px solid var(--red);outline-offset:2px}.btn.ghost{color:var(--ink);border:1px solid var(--ink);background:0 0;padding:8px 15px}.btn.ghost:hover{background:var(--ink);color:var(--paper)}.btn.danger{background:var(--red)}.btn.danger:hover{background:#a80503}.btn.small{padding:5px 10px;font-size:13px}.btn.ghost.small{padding:4px 9px}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.x{all:unset;cursor:pointer;font:500 11px var(--mono);color:var(--ink2);border:1px solid #0000;border-radius:5px;padding:4px 8px}.x:hover{border-color:var(--rule);color:var(--red)}.form{gap:14px;display:grid}.card>.form,.card.form{padding:18px}.field{gap:5px;display:grid}.field>.label{font:600 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}.field>.hint{color:var(--ink2);font-size:12.5px}.field>.error,.error[data-keep-error]{color:var(--red-text);font-size:12.5px;font-weight:600;display:block}.form-error{border:1px solid var(--red-line);background:var(--red-soft);color:var(--ink);border-left:4px solid var(--red);border-radius:var(--radius-sm);padding:10px 14px;font-weight:500}[aria-invalid=true]{border-color:var(--red)!important}.input,.select,.textarea{border:1px solid var(--field-line);background:var(--white);border-radius:var(--radius-sm);font:500 15px var(--sans);color:var(--ink);width:100%;padding:9px 10px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--ink);outline-offset:1px;border-color:var(--ink)}.input.mono{font-family:var(--mono)}.textarea{resize:vertical;min-height:84px}.check{font:500 14px var(--sans);align-items:center;gap:8px;display:flex}.check input{width:16px;height:16px;accent-color:var(--ink)}.form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.filters{border-bottom:1px solid var(--rule2);flex-wrap:wrap;align-items:end;gap:10px;padding:14px 18px;display:flex}.filters .field{min-width:150px}.builder{flex-wrap:wrap;align-items:center;gap:8px;padding:18px;font-size:16px;line-height:2.3;display:flex}.builder select,.builder input{border:0;border-bottom:2px solid var(--ink);background:0 0;border-radius:0;outline:none;padding:2px 4px;font-weight:600}.builder input{width:84px;font-family:var(--mono)}.builder select:focus,.builder input:focus{border-color:var(--red)}.rules{display:grid}.rule{border-top:1px solid var(--rule2);grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:13px 18px;display:grid}.rule:first-child{border-top:0}.rule .s{font-size:15.5px}.rule .s b{font-weight:600}.rule.retired .s{color:var(--ink3);text-decoration:line-through;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}.receipt{background:var(--white);border:1px solid var(--rule);font-family:var(--mono);box-shadow:var(--shadow-receipt);border-radius:4px;margin-bottom:12px;padding:26px 26px 20px;animation:.35s ease-out both print;position:relative}.receipt:after{content:"";background:linear-gradient(-45deg,#0000 7px,#fff 0) 0 0/14px 10px,linear-gradient(45deg,#0000 7px,#fff 0) 0 0/14px 10px;height:10px;position:absolute;bottom:-9px;left:0;right:0}@keyframes print{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-10px)}to{opacity:1;clip-path:inset(0 0 -20px);transform:none}}.receipt h3{font:400 30px/1 var(--serif);margin:0 0 4px}.receipt .meta{color:var(--ink2);border-bottom:1px dashed var(--rule);margin-bottom:12px;padding-bottom:12px;font-size:12px}.receipt .line{border-bottom:1px dotted var(--rule);grid-template-columns:1fr auto;gap:14px;padding:9px 0;display:grid}.receipt .line .who{font:600 15px var(--sans)}.receipt .line .why{color:var(--ink2);margin-top:2px;font-size:11.5px}.receipt .line .a{font-size:17px;font-weight:600}.receipt .total{justify-content:space-between;gap:14px;padding-top:14px;font-size:15px;font-weight:600;display:flex}@media (prefers-reduced-motion:reduce){.receipt{animation:none}}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:6px;display:grid}.kpi{padding:16px 18px;text-decoration:none;display:block}a.kpi:hover{border-color:var(--ink)}.kpi .v{font:400 34px/1 var(--serif)}.kpi .l{font:600 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin-top:6px}.kpi .h{font:400 12px var(--mono);color:var(--ink2);margin-top:4px}.kpi.alert .v{color:var(--red)}.details{grid-template-columns:190px 1fr;margin:0;display:grid}.details dt{font:600 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);border-top:1px solid var(--rule2);padding:12px 18px}.details dd{border-top:1px solid var(--rule2);margin:0;padding:10px 18px}.details dt:first-of-type,.details dd:first-of-type{border-top:0}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:14px;display:flex}.tabs a{font:500 13px var(--sans);color:var(--ink2);border:1px solid #0000;border-radius:999px;padding:6px 12px;text-decoration:none}.tabs a:hover{border-color:var(--rule);color:var(--ink)}.tabs a[aria-current=page]{background:var(--ink);color:var(--paper)}.tabs a .count{font:500 11px var(--mono);opacity:.7;margin-left:6px}.pager{border-top:1px solid var(--rule2);font:400 12.5px var(--mono);color:var(--ink2);justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;display:flex}.empty{text-align:center;color:var(--ink2);padding:44px 24px}.empty .t{font:400 26px/1.1 var(--serif);color:var(--ink);margin-bottom:6px}.empty .btn{margin-top:14px}.flash{z-index:50;border-radius:var(--radius-sm);background:var(--ink);max-width:420px;color:var(--paper);align-items:flex-start;gap:12px;padding:12px 16px;font-weight:500;animation:.25s ease-out both flash-in;display:flex;position:fixed;top:18px;right:22px;box-shadow:0 16px 36px -18px #17140fb3}.flash.error{background:var(--red)}.flash.info{background:var(--blue)}.flash button{all:unset;cursor:pointer;opacity:.7;font:500 12px var(--mono)}.flash button:hover{opacity:1}@keyframes flash-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.banner{border-radius:var(--radius-sm);border:1px solid var(--amber-line);background:var(--amber-soft);color:var(--ink);margin-bottom:18px;padding:12px 16px}.banner.red{border-color:var(--red-line);background:var(--red-soft)}.banner.green{border-color:var(--green-line);background:var(--green-soft)}.banner.plain{border-color:var(--rule);background:var(--card)}.banner b{font-weight:600}.note{font:400 12.5px/1.5 var(--mono);color:var(--ink2)}.coming{border:1px dashed var(--rule);border-radius:var(--radius);background:#fbf9f499;padding:30px}.coming ul{color:var(--ink2);margin:12px 0 0;padding-left:18px}.coming li{margin:4px 0}.center{place-items:center;min-height:100vh;padding:30px 16px;display:grid}.signin{width:min(640px,100%)}.signin .who{all:unset;box-sizing:border-box;cursor:pointer;border-top:1px solid var(--rule2);grid-template-columns:1fr auto;align-items:center;gap:14px;width:100%;padding:13px 18px;display:grid}.signin form:first-of-type .who{border-top:0}.signin .who:hover{background:#17140f0a}.signin .who:hover .go{color:var(--red)}.signin .who b{font-weight:600}.signin .who .go{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--rule);flex-flow:wrap;justify-content:space-between;align-items:center;gap:8px 12px;height:auto;padding:12px 16px;position:static;overflow:visible}.brand{padding:0;font-size:21px}.brand small{margin-top:4px}.nav-toggle-label{cursor:pointer;font:600 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--ink);border-radius:6px;align-items:center;padding:8px 12px;display:inline-flex}.nav-toggle:focus-visible+.nav-toggle-label{outline:2px solid var(--red);outline-offset:2px}.nav-toggle:checked+.nav-toggle-label{background:var(--ink);color:var(--paper)}.nav-body{flex-basis:100%;display:none}.nav-toggle:checked~.nav-body{display:flex}.nav{margin-top:6px}.sidebar-foot{margin-top:12px}.main{padding:22px 16px 60px}.grid2,.cols-2,.cols-3{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.details{grid-template-columns:1fr}.details dd{border-top:0;padding-top:0}h1,.h1{font-size:36px}}@media print{.sidebar,.flash,.btn,.filters,.form-error{display:none!important}.app{display:block}body{background:#fff}}
