:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--fg:#1d1d1f;--bg:#fff;--muted:#6e6e73;--line:#d2d2d7;--panel:#f5f5f7;--accent:#0b6e4f;--danger:#c0392b;--warn:#b7791f;font-family:system-ui,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--fg:#f2f2f2;--bg:#161617;--muted:#a1a1a6;--line:#3a3a3c;--panel:#1f1f21;--accent:#3fbf8f;--danger:#ef6a5b;--warn:#e0a84a}}body{background:var(--bg);color:var(--fg);margin:0}.topbar{--fg:#f2f2f2;--bg:#161617;--muted:#a1a1a6;--line:#3a3a3c;--accent:#3fbf8f;--danger:#ef6a5b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-bottom:1px solid var(--line);background:var(--bg);color:var(--fg);align-items:center;gap:1rem;padding:.5rem 1rem;display:flex}.topbar .brand{height:1.5rem;display:block}.topbar .sync{color:var(--muted);border-color:#0000;margin-left:auto;padding:.25rem .5rem;font-size:.875rem}.topbar .sync:hover:enabled{border-color:var(--line);color:var(--fg)}.topbar .sync:disabled{opacity:1}.sync-ok .dot{background:var(--accent)}.sync-failed .dot{background:var(--danger)}.topbar .who{color:var(--muted);font-size:.875rem}.page{max-width:44rem;margin:0 auto;padding:2rem 1rem 4rem}.page.narrow{max-width:22rem}.page.wide{max-width:64rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}h1{margin:0 0 1rem;font-size:1.5rem}.page-header h1{margin:0}h2{margin:0;font-size:1.125rem}.stack{flex-direction:column;gap:.75rem;display:flex}label{flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}label.check{flex-direction:row;align-items:center;gap:.5rem;font-size:1rem}fieldset{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:.25rem;margin:0;padding:.5rem .75rem;display:flex}legend{padding:0 .25rem;font-size:.875rem}input,select{min-width:0;font:inherit;border:1px solid var(--line);color:inherit;background:0 0;border-radius:4px;padding:.5rem;font-size:1rem}input[type=checkbox]{width:1rem;height:1rem}button{font:inherit;border:1px solid var(--line);color:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:.5rem .9rem}button[type=submit]{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent)}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.panel{border:1px solid var(--line);background:var(--panel);border-radius:6px;margin-bottom:1.5rem;padding:1rem}.banner{border:1px solid var(--danger);color:var(--danger);border-radius:4px;flex-direction:column;gap:.25rem;margin:1rem 0;padding:.75rem;font-size:.875rem;display:flex}.status,.hint{color:var(--muted);margin:0;font-size:.875rem}.status{margin-top:1rem}.dot{background:var(--warn);border-radius:50%;width:.5rem;height:.5rem;display:inline-block}.server-ready .dot{background:var(--accent)}.server-unreachable .dot{background:var(--danger)}.facts{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0 0 1.5rem;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9375rem}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:.5rem}th{color:var(--muted);font-size:.8125rem;font-weight:500}tr.inactive td{color:var(--muted)}.actions+.panel{margin-top:1.5rem}.choices{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.choice{text-align:left;align-items:center;gap:.75rem;width:100%;display:flex}kbd{border:1px solid var(--line);background:var(--panel);text-align:center;border-radius:4px;min-width:1.4em;padding:.1rem .35rem;font:.875rem ui-monospace,monospace;display:inline-block}.choice-row{gap:.5rem;display:flex}td.num{text-align:right;font-variant-numeric:tabular-nums}tr.total td{font-weight:600}.warn{color:var(--warn)}.single-view{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.single-view>.topbar{flex:none}.billing{flex-direction:column;flex:1;min-height:0;display:flex}.billing>.alertbar,.billing>.statusbar,.billing>.keybar{flex:none}.alertbar{min-height:2rem;color:var(--danger);padding:.3rem 1rem;font-weight:600}.alertbar:not(:empty){border-bottom:1px solid var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.alertbar:not(:empty):before{content:"⚠ "}.alertbar.flash:not(:empty){animation:.6s ease-out alert-flash}@keyframes alert-flash{0%{background:color-mix(in srgb, var(--danger) 45%, transparent)}}.billing-main{flex:1;gap:1rem;min-height:0;padding:0 1rem .5rem;display:flex}.billing-cart{flex-direction:column;flex:1;min-width:0;min-height:0;transition:opacity .15s;display:flex}.billing-cart.locked{opacity:.4}.billing-lines{flex:1;min-height:0;overflow-y:auto}.billing-lines thead th{background:var(--bg);position:sticky;top:0}.billing-lines tr.selected td{background:color-mix(in srgb, var(--accent) 14%, transparent)}.billing-lines tr.selected td:first-child{box-shadow:inset 3px 0 var(--accent)}.billing-lines .line-name{white-space:normal}.billing-lines tr.line-in td{animation:.2s ease-out line-in}@keyframes line-in{0%{opacity:0;transform:translateY(-.4rem)}}.pulse{animation:.3s ease-out pulse}@keyframes pulse{0%{background:color-mix(in srgb, var(--accent) 35%, transparent)}}.billing-lines tr.pending td{background:color-mix(in srgb, var(--warn) 16%, transparent);animation:1.2s ease-in-out infinite pending}@keyframes pending{50%{background:color-mix(in srgb, var(--warn) 32%, transparent)}}.overlay{z-index:10;background:color-mix(in srgb, var(--fg) 35%, transparent);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.overlay .panel.wide{background:var(--bg);border:2px solid var(--fg);width:min(52rem,100%);max-height:calc(100vh - 2rem);margin:0;animation:.16s ease-out panel-in;overflow-y:auto}.overlay .panel.wide h2{margin-top:0}.billing-lines tr.voided td{color:var(--muted);text-decoration:line-through}.billing-lines tr.voided .tag{text-decoration:none;display:inline-block}.billing-lines tr.line-void td{animation:.45s ease-out line-void}@keyframes line-void{0%{background:color-mix(in srgb, var(--danger) 35%, transparent)}}.billing-lines tr.line-restore td{animation:.45s ease-out line-restore}@keyframes line-restore{0%{background:color-mix(in srgb, var(--accent) 30%, transparent)}}.tag{color:var(--warn);border:1px solid;border-radius:4px;margin-left:.25rem;padding:0 .35rem;font-size:.75rem}.side-panel{border:2px solid var(--fg);flex:1;min-height:0;margin-bottom:0;animation:.16s ease-out panel-in;overflow-y:auto}.side-panel h2{margin-top:0}.split-field,.terminal-payment{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.terminal-payment p{margin:0}@keyframes panel-in{0%{opacity:0;transform:translate(.75rem)}}.customer-suggestions{border:1px solid var(--line);margin:.25rem 0 0;padding:0;list-style:none}.customer-suggestions button{text-align:left;background:var(--bg);border:none;border-radius:0;flex-wrap:wrap;align-items:baseline;column-gap:.75rem;width:100%;display:flex}.customer-suggestions [aria-selected=true] button{background:var(--panel);outline:2px solid var(--fg);outline-offset:-2px}.customer-suggestions button strong{flex-basis:100%}.customer-suggestions button .hint{margin-left:auto}.customer-panel input{box-sizing:border-box;width:100%}.batch-choices{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.batch-choice{text-align:left;background:var(--bg);align-items:flex-start;gap:.75rem;width:100%;display:flex}.batch-choice kbd{min-width:1.8em;font-size:1rem}.batch-choice.selected{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.batch-choice>span{flex-direction:column;display:flex}.batch-product{font-weight:600}.batch-expiry{font-size:1.25rem;font-weight:600}@media (prefers-reduced-motion:reduce){.billing-lines tr.line-in td,.billing-lines tr.line-void td,.billing-lines tr.line-restore td,.overlay .panel.wide,.billing-lines tr.pending td,.side-panel,.pulse{animation:none}.billing-cart{transition:none}}.billing-cart>.hint{flex:none;margin:.5rem 0 0}.scan-field{box-sizing:border-box;width:100%;margin:.5rem 0 1rem;padding:.6rem .8rem;font-size:1.25rem}.billing-side{flex-direction:column;width:20rem;min-height:0;padding-top:.5rem;display:flex}.billing-customer{flex:1;min-height:0;overflow-y:auto}.billing-pay{flex:none;margin-bottom:0}.billing-gst{margin-bottom:.5rem;font-size:.875rem}.billing-gst th,.billing-gst td{border-bottom:none;padding:.15rem 0}.billing-gst th{font-size:inherit}.billing-total{text-align:right;margin:0;font-size:2rem;font-weight:600}.billing-total-note{text-align:right}.big{font-size:1.75rem;font-weight:600}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;width:100%}.statusbar{border-top:1px solid var(--line);background:var(--panel);min-height:1.75rem;color:var(--muted);padding:.25rem 1rem;font-size:.875rem}.keybar{border-top:1px solid var(--line);flex-wrap:wrap;gap:.5rem;padding:.5rem 1rem;display:flex}.keybar button{padding:.25rem .6rem}.keybar .hint{align-self:center}@media (width<=48rem){.single-view{height:auto;overflow:visible}.billing-main{flex-direction:column}.billing-side{width:auto}}.bill-done{flex-wrap:wrap;align-items:flex-start;gap:2rem;display:flex}.bill-done>div{flex:18rem}.receipt{border:1px dashed var(--muted,#888);color:#000;background:#fff;width:72mm;padding:3mm;font:12px/1.35 ui-monospace,monospace}.receipt table{border-collapse:collapse;width:100%}.receipt th,.receipt td{text-align:left;background:0 0;border:0;padding:0 1px;font-size:11px}.receipt .num{text-align:right}.receipt th{color:#000;font-weight:700}.receipt hr{border:0;border-top:1px dashed #000;margin:4px 0}.receipt-centre{text-align:center}@media print{@page{size:80mm auto;margin:0}body *{visibility:hidden}.receipt,.receipt *{visibility:visible}.receipt{border:0;position:absolute;top:0;left:0}}.find-bill-list{flex-direction:column;flex:1;gap:.5rem;min-height:0;padding:0 1rem .5rem;display:flex}.chips{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.chip{color:var(--muted);border-radius:999px;padding:.2rem .6rem}.chip.on{border-color:var(--accent);color:inherit;background:color-mix(in srgb, var(--accent) 14%, transparent)}.status{letter-spacing:.03em;font-size:.75rem;font-weight:700}.status-parked{color:var(--accent)}.status-cancelled{color:var(--danger)}.find-bill-view h1{margin:.25rem 0;font-size:1.25rem}.voided-before-payment{color:var(--muted);margin-top:.75rem}.voided-before-payment tr.voided td{text-decoration:line-through}.voided-before-payment tr.voided td.hint{text-decoration:none}.print-only{display:none}@media print{.print-only{display:block}}.choice.way-out{border-color:var(--danger);color:var(--danger);font-weight:600}.choice.way-in{border-color:var(--accent);color:var(--accent);font-weight:600}.way{color:#fff;border-radius:4px;margin:0;padding:.5rem .75rem;font-weight:700}.cash-out .way,.cash-out button[type=submit]{background:var(--danger);border-color:var(--danger)}.cash-in .way{background:var(--accent)}.cash-out form{border-left:4px solid var(--danger);padding-left:.75rem}.cash-in form{border-left:4px solid var(--accent);padding-left:.75rem}
