@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wdth,wght@12..96,75..100,500..800&family=Figtree:wght@400;500;700&family=Courier+Prime:wght@400;700&display=swap");
:root{--signal:#FFD23F;--tin:#E5462E;--tin-dark:#B8321F;--ink:#1D2340;--paper:#FFFFFF;--bg:#FFF8DC;--surface:#FFFFFF;--line:#1D2340;--rule:#E3E6EE;--muted:#5A6080;--steel:#D5D9E4;--kaching:#21A46A;--kaching-soft:#DDF3E7;--warn:#8A5A00;--warn-soft:#FFF0BF;--bad-soft:#FDE4DF;--display:"Bricolage Grotesque","Arial Black",system-ui,sans-serif;--body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;--receipt:"Courier Prime","Courier New",monospace;--r:14px;color-scheme:light}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--body)}img{max-width:100%}[hidden]{display:none!important}a{color:var(--ink)}
h1,h2,h3{font-family:var(--display);line-height:1.05;margin:0;text-wrap:balance;letter-spacing:-.01em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}.label{font-size:13px;color:var(--muted);font-weight:700}.muted{color:var(--muted)}
.wrap{max-width:720px;margin:0 auto;padding:18px 16px 56px;display:flex;flex-direction:column;gap:18px}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:800 22px/1 var(--display);font-stretch:85%}.brand svg{width:36px;height:36px}
.bar nav{display:flex;gap:16px;flex-wrap:wrap;font-size:15px}.bar nav a{text-decoration:none;color:var(--ink);font-weight:700}.bar nav a:hover{text-decoration:underline;text-underline-offset:4px}
.lid{background:var(--ink);color:var(--paper);border-radius:20px;padding:22px 20px 18px;display:grid;gap:14px;box-shadow:6px 6px 0 var(--tin)}.lid .label{color:#C9CDE0}
.bal{font-family:var(--display);font-stretch:85%;font-weight:800;font-size:clamp(50px,13vw,76px);line-height:.95;color:var(--signal)}.lidrow{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;color:#C9CDE0}.lidrow b{color:var(--paper);font-weight:700}
.gauge{height:8px;border-radius:4px;background:rgba(255,255,255,.18);overflow:hidden}.gauge i{display:block;height:100%;background:var(--signal)}
.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.act{border:3px solid var(--ink);background:var(--surface);border-radius:var(--r);padding:14px 12px;text-align:left;cursor:pointer;display:grid;gap:4px;box-shadow:0 4px 0 var(--ink);transition:transform .1s ease}
.act:hover{transform:translateY(-2px)}.act:active{transform:translateY(2px);box-shadow:0 2px 0 var(--ink)}.act strong{font:800 19px/1.1 var(--display);font-stretch:88%}.act span{font-size:13px;color:var(--muted)}.act.primary{background:var(--tin);color:#fff}.act.primary span{color:#FFE3DD}
@media (max-width:460px){.actions{grid-template-columns:1fr 1fr}.act.primary{grid-column:1/-1}}
.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.tab{background:none;border:2px solid transparent;border-radius:999px;padding:8px 14px;cursor:pointer;color:var(--ink);font-weight:700;white-space:nowrap}.tab[aria-selected="true"]{background:var(--ink);color:var(--signal)}
.filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip{border:2px solid var(--ink);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700;cursor:pointer}.chip[aria-pressed="true"]{background:var(--signal)}
.roll{background:var(--paper);border:3px solid var(--ink);border-radius:6px 6px 0 0;font:15px/1.45 var(--receipt);position:relative;margin-bottom:14px;box-shadow:6px 6px 0 var(--steel)}
.roll::after{content:"";position:absolute;left:-3px;right:-3px;bottom:-12px;height:12px;background:linear-gradient(-45deg,transparent 6px,var(--ink) 6px,var(--ink) 9px,transparent 9px) 0 0/12px 12px repeat-x,linear-gradient(45deg,transparent 6px,var(--ink) 6px,var(--ink) 9px,transparent 9px) 0 0/12px 12px repeat-x}
.row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 14px;border-bottom:2px dashed var(--rule);cursor:pointer}.row:last-child{border-bottom:0}.row:hover{background:#FFFBEA}
.row .d{font-weight:700;min-width:0;overflow-wrap:anywhere}.row .m{color:var(--muted);font-size:13px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;grid-column:1/-1;font-family:var(--body)}.row .a{text-align:right;font-weight:700}
.a.out{color:var(--tin-dark)}.a.in{color:var(--kaching)}.row.void .d,.row.void .a{text-decoration:line-through;opacity:.5}
.pill{font:700 11px/1.4 var(--body);padding:1px 8px;border-radius:999px;background:var(--kaching-soft);color:#146B45}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--tin-dark)}
.empty{padding:28px 18px;text-align:center;color:var(--muted);font-family:var(--body)}
.card{background:var(--surface);border:3px solid var(--ink);border-radius:var(--r);padding:20px;display:grid;gap:14px}.card h2{font-size:26px;font-stretch:85%}
.field{display:grid;gap:6px}.field>label{font-size:14px;font-weight:700}.field small{color:var(--muted);font-size:13px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=tel],select,textarea{width:100%;padding:12px 14px;border:2px solid var(--ink);border-radius:10px;background:var(--paper)}
input:focus,select:focus,textarea:focus{outline:3px solid var(--signal);outline-offset:0}
.money{font:800 30px/1.1 var(--display);font-stretch:90%}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width:420px){.two{grid-template-columns:1fr}}
.btns{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.btn{border:3px solid var(--ink);background:var(--surface);border-radius:999px;padding:11px 20px;font-weight:700;cursor:pointer;text-decoration:none;color:var(--ink);display:inline-block;transition:transform .1s ease}
.btn:hover{transform:translateY(-1px)}.btn.go{background:var(--tin);color:#fff;box-shadow:0 3px 0 var(--ink)}.btn.danger{color:var(--tin-dark)}.btn.block{width:100%;text-align:center;padding:14px 18px}.btn:disabled{opacity:.5;cursor:default;transform:none}
.linkbtn{background:none;border:0;padding:0;color:var(--ink);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.photo{border:3px dashed var(--ink);border-radius:var(--r);padding:18px;display:grid;gap:6px;justify-items:center;text-align:center;cursor:pointer;background:#FFFBEA}.photo img{max-height:220px;border-radius:8px}
.note{font-size:14px;padding:12px 14px;border-radius:12px;background:var(--warn-soft);color:var(--warn);font-weight:600}.note.ok{background:var(--kaching-soft);color:#146B45}.note.bad{background:var(--bad-soft);color:var(--tin-dark)}
.quip{display:flex;gap:12px;align-items:center;background:var(--signal);border:3px solid var(--ink);border-radius:var(--r);padding:12px 14px;font-weight:700}.quip svg{flex:0 0 46px;width:46px;height:46px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 6px;border-bottom:2px solid var(--rule)}th{font-size:13px;color:var(--muted)}td.r,th.r{text-align:right}.tblwrap{overflow-x:auto}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere;font-weight:600}.receiptimg{width:100%;border-radius:10px;border:3px solid var(--ink)}
.sheet{position:fixed;inset:0;background:rgba(29,35,64,.55);display:flex;align-items:flex-end;justify-content:center;z-index:10}
.sheet .box{background:var(--surface);width:100%;max-width:520px;max-height:92%;overflow:auto;border:3px solid var(--ink);border-bottom:0;border-radius:22px 22px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom,0px));display:grid;gap:14px}
@media (min-width:600px){.sheet{align-items:center}.sheet .box{border-radius:22px;border-bottom:3px solid var(--ink)}}.box h2{font-size:26px;font-stretch:85%}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--signal);padding:12px 18px;border-radius:999px;font-weight:700;z-index:20;box-shadow:0 4px 0 var(--tin)}
.page{max-width:70ch;margin:0 auto;padding:20px 16px 64px;display:flex;flex-direction:column;gap:22px}.page h1{font-size:clamp(36px,8vw,56px);font-weight:800;font-stretch:80%}.page h2{font-size:28px;font-stretch:85%;margin-top:10px}.page h3{font-size:20px}
.page .brand::before{content:"";width:36px;height:36px;background:url(/favicon.svg) center/contain no-repeat}
.lede{font-size:19px;color:var(--muted)}.cta{display:flex;gap:10px;flex-wrap:wrap}
.foot{background:var(--ink);color:#C9CDE0;padding:24px 16px;font-size:14px;text-align:center}.foot a{color:var(--paper)}
.sheetprint{background:#fff;color:#111;border:3px solid var(--ink);padding:18px;border-radius:6px}.sheetprint table td,.sheetprint table th{border:1px solid #999;padding:8px 6px;color:#111}.sheetprint table th{background:#FFF0BF;font-size:12px}.sheetprint .blank td{height:30px}
.voucher{border:2px solid #111;padding:16px;display:grid;gap:10px;background:#fff;color:#111;max-width:560px}.voucher .line{display:flex;gap:8px;align-items:flex-end}.voucher .line span{white-space:nowrap;font-size:14px}.voucher .line i{flex:1;border-bottom:1px solid #111;height:22px}
@media print{body{background:#fff;color:#000}.bar,.foot,.printhide,.cta{display:none!important}.page{max-width:none;padding:0}.sheetprint,.voucher{border-color:#000}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
