:root{--ivory: #fffcf6;--paper: #ffffff;--sand: #f1eae0;--sand-deep: #e8dfd2;--cream: #fbf3e6;--ink: #1e2a24;--muted: #7a7266;--line: rgba(30, 42, 36, .07);--ink-30: rgba(30, 42, 36, .3);--basil: #14503a;--leaf: #15764e;--leaf-bg: #e4f0e6;--tomato: #d2452b;--tomato-bg: #fbe6df;--turmeric: #e9a13b;--turmeric-bg: #fcefd8;--plum: #6d4b8f;--font-ui: "Satoshi", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-indic: "Noto Sans Devanagari", "Noto Sans Kannada", var(--font-ui);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s7: 28px;--s8: 32px;--s9: 40px;--s10: 48px;--s12: 64px;--r-sm: 8px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-full: 999px;--e1: 0 1px 2px rgba(30, 42, 36, .04), 0 4px 12px rgba(30, 42, 36, .04);--e2: 0 2px 4px rgba(30, 42, 36, .04), 0 8px 24px rgba(30, 42, 36, .06);--e3: 0 -4px 24px rgba(30, 42, 36, .08);--e4: 0 8px 40px rgba(30, 42, 36, .12);--scrim: rgba(30, 42, 36, .32);--dur-instant: .12s;--dur-quick: .18s;--dur-base: .24s;--dur-slow: .34s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--spring: cubic-bezier(.34, 1.32, .48, 1);--gutter: 16px;--column: 480px;--nav-height: 80px;--logo-bar: 44px;color-scheme:light}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--sand);color:var(--ink);font-family:var(--font-ui);font-size:16px;line-height:24px;font-weight:500;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{border:none;background:none;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--basil);outline-offset:2px;border-radius:4px}::selection{background:var(--turmeric-bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.num{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}.hero{font-size:44px;line-height:48px;font-weight:700;letter-spacing:-.03em}.money-lg{font-size:30px;line-height:34px;font-weight:700;letter-spacing:-.025em}.money-md{font-size:20px;line-height:24px;font-weight:600;letter-spacing:-.02em}.title{font-size:24px;line-height:30px;font-weight:700;letter-spacing:-.02em;margin:0}.heading{font-size:17px;line-height:24px;font-weight:600;letter-spacing:-.01em;margin:0}.body{font-size:16px;line-height:24px;font-weight:500}.label{font-size:14px;line-height:20px;font-weight:500}.caption{font-size:13px;line-height:18px;font-weight:500}.nano{font-size:11px;line-height:14px;font-weight:600;letter-spacing:.01em}.muted{color:var(--muted)}.leaf{color:var(--leaf)}.tomato{color:var(--tomato)}.pretty{text-wrap:pretty}.app{height:100%;display:flex;align-items:center;justify-content:center;background:var(--sand)}.phone{position:relative;width:100%;max-width:var(--column);height:100%;max-height:900px;background:var(--ivory);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--e2)}@media(min-width:520px)and (min-height:720px){.phone{max-width:390px;height:844px;border-radius:var(--r-xl)}}.logo-bar{flex:none;height:var(--logo-bar);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);background:var(--ivory);padding-top:env(safe-area-inset-top);height:calc(var(--logo-bar) + env(safe-area-inset-top));z-index:4}.wordmark{display:flex;align-items:baseline;gap:6px}.wordmark b{font-size:20px;line-height:20px;font-weight:900;letter-spacing:-.045em}.wordmark span{font-size:10px;line-height:10px;font-weight:500;color:var(--muted)}.avatar{width:28px;height:28px;border-radius:var(--r-full);background:var(--sand);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.offline-strip{flex:none;height:26px;background:var(--turmeric-bg);display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.01em}.screen{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:var(--s2) var(--gutter) var(--s6);animation:fade var(--dur-slow) var(--ease-out)}.screen.flush{padding-left:0;padding-right:0}.screen.flush>.inset{padding:0 var(--gutter)}.screen.with-action{padding-bottom:var(--s3)}.phone.cashier .screen{padding-bottom:68px}.bottom-bar{flex:none;background:var(--ivory);box-shadow:var(--e3);padding:12px var(--gutter) max(16px,env(safe-area-inset-bottom));z-index:5}.nav{flex:none;position:relative;height:var(--nav-height);background:var(--ivory);box-shadow:var(--e3);display:flex;align-items:flex-start;padding:0 var(--s2);padding-bottom:env(safe-area-inset-bottom);z-index:5}.nav-item{flex:1;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);transition:color var(--dur-quick) linear}.nav-item[aria-current=page]{color:var(--basil)}.nav-gap{flex:1}.fab{position:absolute;left:50%;bottom:calc(56px + env(safe-area-inset-bottom));transform:translate(-50%);width:72px;height:72px;border-radius:var(--r-full);background:var(--basil);color:var(--ivory);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #1e2a240a,0 8px 24px #1e2a242e;transition:transform var(--dur-instant) var(--ease-out);z-index:6}.fab:active{transform:translate(-50%) scale(.96)}.btn{display:flex;align-items:center;justify-content:center;gap:var(--s2);width:100%;height:52px;border-radius:var(--r-md);font-size:16px;font-weight:600;letter-spacing:-.01em;transition:transform var(--dur-instant) var(--ease-out),background-color var(--dur-quick) linear}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--basil);color:var(--ivory)}.btn-secondary{height:48px;background:var(--sand);color:var(--ink);font-size:15px}.btn-secondary:active:not(:disabled){background:var(--sand-deep)}.btn-ghost{height:44px;background:transparent;color:var(--ink);font-size:15px}.btn-danger{height:48px;background:var(--tomato-bg);color:var(--tomato);font-size:15px}.btn-big{min-height:68px;justify-content:flex-start;padding:0 18px;background:var(--sand);font-size:17px;text-align:left}.btn-row{display:flex;gap:10px}.spinner{width:16px;height:16px;border-radius:var(--r-full);border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite}.field{display:block}.field>.label{color:var(--muted);margin-bottom:var(--s2)}.input{width:100%;height:56px;border:none;border-radius:var(--r-md);background:var(--sand);padding:0 var(--s4);font-size:16px;font-weight:500;outline:none;transition:background-color var(--dur-quick) linear,box-shadow var(--dur-quick) linear}.input::placeholder{color:var(--muted);opacity:1}.input:focus{background:var(--paper);box-shadow:var(--e1)}.input-underline{height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-quick) var(--ease-out);border-radius:var(--r-full);margin-top:-2px}.input:focus~.input-underline{transform:scaleX(1)}.search{display:flex;align-items:center;gap:10px;height:48px;border-radius:var(--r-md);background:var(--sand);padding:0 var(--s4)}.search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:16px;font-weight:500}.money-field{display:block;width:100%;text-align:left;border-radius:var(--r-md);padding:6px 10px 8px;margin:0 -10px;background:transparent;transition:background-color var(--dur-quick) linear}.money-field.needs-review{background:var(--turmeric-bg)}.money-field .rule{height:2px;margin-top:var(--s2);border-radius:var(--r-full);background:var(--line);transform-origin:left;animation:draw var(--dur-quick) var(--ease-out)}.money-field.needs-review .rule{background:var(--turmeric)}.money-field.edited .rule{background:var(--leaf)}.chip-row{display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none;padding:0 var(--gutter);margin:0 calc(var(--gutter) * -1)}.chip-row::-webkit-scrollbar{display:none}.chip{flex:none;height:32px;padding:0 14px;border-radius:var(--r-full);background:var(--sand);color:var(--ink);font-size:11px;line-height:14px;font-weight:600;letter-spacing:.01em;display:flex;align-items:center;transition:background-color var(--dur-quick) linear,color var(--dur-quick) linear}.chip[aria-pressed=true]{background:var(--ink);color:var(--ivory)}.tag{height:28px;display:inline-flex;align-items:center;padding:0 12px;border-radius:var(--r-sm);background:var(--sand);font-size:11px;font-weight:600;letter-spacing:.01em}.tag-unpaid{background:var(--turmeric-bg)}.tag-paid{background:var(--leaf-bg);color:var(--leaf)}.segmented{position:relative;display:flex;height:40px;padding:4px;border-radius:var(--r-full);background:var(--sand)}.segmented .pill{position:absolute;top:4px;bottom:4px;width:calc((100% - 8px) / 3);border-radius:var(--r-full);background:var(--ivory);box-shadow:var(--e1);transition:transform var(--dur-base) var(--ease-out)}.segmented button{flex:1;position:relative;z-index:1;font-size:14px;font-weight:600;color:var(--muted);transition:color var(--dur-quick) linear}.segmented button[aria-pressed=true]{color:var(--ink)}.panel{border-radius:var(--r-lg);padding:16px 18px;background:var(--sand)}.panel-attention{background:var(--turmeric-bg);display:flex;align-items:center;justify-content:space-between;gap:var(--s3);width:100%;text-align:left}.tile{flex:1;min-width:0;border-radius:var(--r-md);padding:12px 14px;background:var(--sand);display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left}.card{background:var(--paper);border-radius:var(--r-lg);padding:16px;box-shadow:var(--e1)}.chart-bed{background:var(--sand);border-radius:var(--r-lg);padding:16px 16px 12px}.dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--turmeric);flex:none}.dot-sm{width:6px;height:6px}.row{display:flex;align-items:center;gap:var(--s3);width:100%;min-height:68px;text-align:left;transition:background-color var(--dur-instant) linear}.row:active{background:#1e2a2408}.row-main{flex:1;min-width:0}.row-title{font-size:17px;line-height:24px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-meta{font-size:13px;line-height:18px;font-weight:500;color:var(--muted);margin-top:1px}.row-amount{display:flex;align-items:center;gap:7px;flex:none}.thumb{width:48px;height:48px;border-radius:var(--r-sm);background:var(--cream);flex:none;padding:7px 6px;display:flex;flex-direction:column;gap:3px;justify-content:center;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.thumb i{display:block;background:var(--ink-30);height:2px}.divider{height:1px;background:var(--line);border:none;margin:0}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade var(--dur-base) linear;z-index:14}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:88%;overflow-y:auto;background:var(--ivory);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--e4);padding:12px var(--s6) max(28px,env(safe-area-inset-bottom));animation:sheet-up var(--dur-slow) var(--spring);z-index:15}.grab{width:36px;height:4px;border-radius:var(--r-full);background:var(--sand);margin:0 auto 12px}.sheet-lines{display:flex;flex-direction:column;gap:10px;margin-top:14px}.sheet-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4)}.toast{position:absolute;left:var(--gutter);right:var(--gutter);bottom:calc(96px + env(safe-area-inset-bottom));height:52px;border-radius:var(--r-md);background:var(--basil);color:var(--ivory);display:flex;align-items:center;justify-content:space-between;padding:0 18px;box-shadow:var(--e4);animation:toast-up .22s var(--ease-out);z-index:20}.toast button{color:var(--turmeric);font-size:15px;font-weight:600}.toast-tick{width:22px;height:22px;border-radius:var(--r-full);background:var(--leaf);color:var(--ivory);flex:none;display:flex;align-items:center;justify-content:center;animation:tick-in .26s var(--spring) both}.toast-warn{background:var(--tomato)}@keyframes tick-in{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin-top:var(--s4)}.keypad button{height:56px;border-radius:var(--r-md);background:var(--sand);font-size:22px;font-weight:600;transition:transform var(--dur-instant) var(--ease-out),background-color var(--dur-instant) linear}.keypad button:active{background:var(--sand-deep);transform:scale(.98)}.empty{padding:64px 32px 0;display:flex;flex-direction:column;align-items:center;text-align:center}.empty .heading{margin-top:18px}.empty .label{color:var(--muted);margin-top:6px}.camera{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);overflow:hidden;z-index:12}.camera video,.camera .camera-still{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.camera-frame{position:absolute;left:26px;right:26px;top:150px;bottom:250px;border-radius:var(--r-md);box-shadow:0 0 0 2px #ffffffe6;pointer-events:none}.camera-hint{position:absolute;top:64px;left:0;right:0;text-align:center;font-size:14px;font-weight:500;color:#ffffffdb}.camera-controls{position:absolute;left:0;right:0;bottom:0;height:170px;display:flex;align-items:center;justify-content:center;gap:44px}.shutter{width:76px;height:76px;border-radius:var(--r-full);background:var(--ivory);box-shadow:0 0 0 4px #ffffff47;display:flex;align-items:center;justify-content:center;transition:transform var(--dur-instant) var(--ease-out)}.shutter:active{transform:scale(.94)}.shutter i{width:60px;height:60px;border-radius:var(--r-full);background:var(--ivory);box-shadow:inset 0 0 0 2px #1e2a241f}.flash{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ivory);animation:flash 80ms linear;pointer-events:none}.photo-well{border-radius:var(--r-lg);background:var(--cream);overflow:hidden;position:relative;box-shadow:var(--e2);transition:height var(--dur-slow) var(--spring)}.photo-well img{width:100%;height:100%;object-fit:cover;display:block}.photo-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:9px;justify-content:center;padding:22px 18px}.photo-empty i{display:block;background:var(--ink-30);height:4px}.scan-band{position:absolute;left:0;right:0;height:60px;background:linear-gradient(to bottom,#fff0,#ffffff8c,#fff0);animation:scan 1s linear infinite;pointer-events:none}.skeleton{height:26px;border-radius:var(--r-sm);background:var(--sand);margin-top:var(--s2)}.bar-track{height:6px;border-radius:var(--r-full);background:var(--sand);overflow:hidden}.bar-fill{height:100%;border-radius:var(--r-full);transform-origin:left;animation:grow .42s var(--ease-out)}.stack{display:flex;height:10px;border-radius:var(--r-full);overflow:hidden;gap:2px}.stack button{transition:opacity var(--dur-quick) linear}.heat-cell{height:26px;border-radius:6px;transition:box-shadow var(--dur-quick) linear}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes toast-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{0%{transform:translateY(-70px);opacity:0}12%{opacity:1}88%{opacity:1}to{transform:translateY(150px);opacity:0}}@keyframes flash{0%{opacity:0}30%{opacity:.4}to{opacity:0}}@keyframes draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes roll-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.slide-in{animation:slide-in var(--dur-slow) var(--ease-out)}.roll{display:inline-block;animation:roll-in .2s var(--ease-out)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.12s!important;animation-iteration-count:1!important;transition-duration:.12s!important}.roll,.scan-band{animation:fade .12s linear!important}}
