:root{--color-brand:#c2365e;--color-brand-deep:#a3224f;--color-accent-ink:#b02a5b;--color-blush:#fdf0f3;--color-canvas:#ffffff;--color-mist:#f3f3f3;--color-ink:#1c1c1c;--color-muted:#5f5f5f;--color-danger:#a3224f;--color-ok:#1f6f5c;--color-ok-bg:#e6f2ee;--color-warn:#7a4a00;--color-warn-bg:#fff3dc;--color-hairline:#e6e6e6;--color-line:#e2e2e2;--color-field-border:#7d7d7d;--font-body:"Inter",ui-sans-serif,system-ui,sans-serif;--font-heading:"Comfortaa",ui-rounded,system-ui,sans-serif;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--text-base:16px;--text-small:14px;--text-price:22px;--text-total:48px;--radius-sm:10px;--radius:14px;--radius-lg:18px;--touch:48px;--touch-lg:56px;--shadow-sheet:0 -8px 24px rgb(28 28 28/0.06);--ease:150ms ease}*{box-sizing:border-box}body,html{margin:0;background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}body{min-height:100dvh;overflow-x:hidden}p{margin:0}h1,h2,h3{font-family:var(--font-heading);margin:0;line-height:1.2}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--color-brand);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--color-muted)}.small{font-size:var(--text-small)}.error-text{color:var(--color-danger)}.ok-text{color:var(--color-ok)}.empty{padding:var(--space-4);color:var(--color-muted);text-align:center}.btn{min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius);border:1px solid transparent;font-weight:600;cursor:pointer;transition:background-color var(--ease),border-color var(--ease),color var(--ease)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-brand);color:var(--color-canvas)}.btn-primary:not(:disabled):hover{background:var(--color-brand-deep)}.btn-secondary{background:var(--color-canvas);border-color:var(--color-brand);color:var(--color-brand-deep)}.btn-secondary:not(:disabled):hover{background:var(--color-blush)}.btn-ghost{background:transparent;color:var(--color-brand-deep)}.btn-ghost:not(:disabled):hover{background:var(--color-blush)}.btn-block{width:100%}.btn-xl{min-height:var(--touch-lg);font-size:18px}.link-btn{min-height:var(--touch);padding:0 var(--space-2);border:0;background:transparent;color:var(--color-accent-ink);text-decoration:underline;cursor:pointer}.offline-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-mist);border-bottom:1px solid var(--color-hairline);font-size:var(--text-small)}.offline-bar .banner-error{width:100%;margin:0;padding:var(--space-2) var(--space-3);font-size:var(--text-base)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);min-height:28px;padding:0 var(--space-2);border-radius:999px;font-size:var(--text-small);font-weight:700;letter-spacing:.01em}.pill:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.pill-online{background:var(--color-ok-bg);color:var(--color-ok)}.pill-offline{background:var(--color-warn-bg);color:var(--color-warn)}.banner{margin:var(--space-2) var(--space-3) 0;padding:var(--space-3);border-radius:var(--radius);font-size:var(--text-base)}.banner p{margin:0}.banner-error{display:flex;align-items:flex-start;gap:var(--space-2);background:var(--color-blush);border:1px solid var(--color-brand);color:var(--color-brand-deep);font-weight:600}.banner-error p:first-of-type{font-size:18px;line-height:1.4}.banner-meta{font-size:var(--text-small);font-weight:400;color:var(--color-ink);margin-top:var(--space-1)!important}.icon{flex:none;width:24px;height:24px}.login-page{min-height:100dvh;display:grid;place-items:center;padding:var(--space-3)}.login-card{width:min(440px,100%);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-canvas);border:1px solid var(--color-hairline)}.login-card,.login-form{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.field{display:grid;grid-gap:var(--space-1);gap:var(--space-1);font-weight:600;font-size:var(--text-small)}.field input{min-height:var(--touch-lg);padding:0 var(--space-3);border:1px solid var(--color-field-border);border-radius:var(--radius);background:var(--color-canvas);font-size:18px;font-weight:400}.field input:focus-visible{border-color:var(--color-brand)}.session-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.session-button{width:100%;min-height:64px;display:grid;grid-gap:2px;gap:2px;text-align:left;padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--color-field-border);background:var(--color-canvas);cursor:pointer;transition:border-color var(--ease),background-color var(--ease)}.session-button:hover:not(:disabled){border-color:var(--color-brand);background:var(--color-blush)}.till{min-height:100dvh;display:flex;flex-direction:column}.till-head{position:-webkit-sticky;position:sticky;top:0;z-index:5;justify-content:space-between;min-height:64px;padding:var(--space-2) var(--space-3);background:var(--color-canvas);border-bottom:1px solid var(--color-hairline)}.brand,.till-head{display:flex;align-items:center}.brand{gap:var(--space-2)}.brand img{border-radius:var(--radius-sm)}.shop-name{font-family:var(--font-heading);font-weight:700;font-size:18px;margin:0}.sell-layout{flex:1 1;padding:var(--space-3);padding-bottom:240px}.browse,.sell-layout{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.browse{align-content:start;min-width:0}.search input{width:100%;min-height:var(--touch-lg);padding:0 var(--space-3);border-radius:var(--radius);border:1px solid var(--color-field-border);background:var(--color-canvas);font-size:18px}.search input:focus-visible{border-color:var(--color-brand);outline:3px solid var(--color-brand);outline-offset:2px}.tile-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:var(--space-2);gap:var(--space-2)}.tile{width:100%;min-height:168px;display:grid;grid-gap:var(--space-1);gap:var(--space-1);align-content:start;padding:var(--space-2);text-align:left;border-radius:var(--radius);border:1px solid var(--color-hairline);background:var(--color-canvas);cursor:pointer;transition:border-color var(--ease),background-color var(--ease),transform var(--ease)}.tile:hover{border-color:var(--color-brand);background:var(--color-blush)}.tile:active{transform:scale(.98)}.tile-image{height:56px;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--color-blush);color:var(--color-brand-deep);font-family:var(--font-heading);font-size:22px;font-weight:700}.tile-name{font-weight:600;line-height:1.3}.tile-mrp,.tile-variant{font-size:var(--text-small)}.tile-price{margin-top:auto;padding-top:var(--space-1);font-family:var(--font-heading);font-size:var(--text-price);font-weight:700;color:var(--color-brand-deep)}.cart{position:fixed;left:0;right:0;bottom:0;z-index:4;display:grid;grid-gap:var(--space-2);gap:var(--space-2);max-height:46dvh;background:var(--color-canvas);border-top:1px solid var(--color-hairline);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-sheet);padding:var(--space-2) var(--space-3) var(--space-3);grid-template-rows:auto minmax(0,1fr) auto}.cart-head{display:flex;justify-content:space-between;align-items:baseline}.cart-head h2{font-size:20px}.cart-lines{list-style:none;margin:0;padding:0;overflow-y:auto;display:grid}.cart-line{display:grid;grid-template-columns:1fr auto auto;align-items:center;grid-gap:var(--space-2);gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--color-hairline)}.cart-line-name{display:grid;min-width:0}.cart-line-name span,.cart-line-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-line-name span{font-size:var(--text-small)}.qty{display:flex;align-items:center;gap:var(--space-1)}.qty-btn,.qty-value{min-width:var(--touch-lg);min-height:var(--touch-lg);border-radius:var(--radius-sm);border:1px solid var(--color-field-border);background:var(--color-canvas);font-size:20px;font-weight:700;cursor:pointer;transition:border-color var(--ease),background-color var(--ease)}.qty-btn:hover,.qty-value:hover{border-color:var(--color-brand);background:var(--color-blush)}.qty-value{min-width:64px}.cart-foot{display:grid}@media (min-width:900px){.sell-layout{grid-template-columns:minmax(0,1fr) 380px;padding-bottom:var(--space-3);align-items:start;height:calc(100dvh - 72px)}.cart{position:-webkit-sticky;position:sticky;top:88px;max-height:none;height:calc(100dvh - 104px);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);box-shadow:none;grid-template-rows:auto minmax(0,1fr) auto}}.charge{flex:1 1;grid-gap:var(--space-3);gap:var(--space-3);align-content:start;max-width:720px;width:100%;margin:0 auto}.charge,.charge-total{display:grid;padding:var(--space-3)}.charge-total{grid-gap:var(--space-1);gap:var(--space-1);text-align:center;border-radius:var(--radius-lg);background:var(--color-blush)}.charge-amount{font-family:var(--font-heading);font-size:var(--text-total);line-height:1.1;font-weight:700;color:var(--color-brand-deep)}.tender-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--space-1);gap:var(--space-1)}.tender-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:var(--space-2);gap:var(--space-2);align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--color-mist)}.tender-amount{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tender-sum{text-align:right;font-size:var(--text-small)}.tender-form{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.method-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-2);gap:var(--space-2)}.method{min-height:var(--touch-lg);border-radius:var(--radius);border:1px solid var(--color-field-border);background:var(--color-canvas);font-weight:600;cursor:pointer;transition:border-color var(--ease),background-color var(--ease)}.method:hover{border-color:var(--color-brand)}.method-on{border-color:var(--color-brand-deep);background:var(--color-brand-deep);color:var(--color-canvas)}.amount-entry{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.amount-display{min-height:var(--touch-lg);display:flex;align-items:center;justify-content:flex-end;padding:0 var(--space-3);border-radius:var(--radius);background:var(--color-mist);font-family:var(--font-heading);font-size:30px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.keypad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-2);gap:var(--space-2)}.key{min-height:64px;border-radius:var(--radius);border:1px solid var(--color-field-border);background:var(--color-canvas);font-size:24px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--ease),border-color var(--ease)}.key:hover{border-color:var(--color-brand)}.key:active{background:var(--color-blush)}.key-wide{grid-column:span 3;font-size:18px}.keypad-spacer{display:block}.batch-split{font-size:var(--text-small);color:var(--color-muted)}.charge-foot{position:-webkit-sticky;position:sticky;bottom:0;background:var(--color-canvas);padding-top:var(--space-2)}.charge-foot,.done{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.done{flex:1 1;align-content:center;justify-items:center;text-align:center;padding:var(--space-4);max-width:520px;width:100%;margin:0 auto}.invoice-number{font-family:var(--font-heading);font-size:32px;font-weight:700;color:var(--color-brand-deep);margin:var(--space-1) 0 0}.done-total{font-size:18px;margin:var(--space-1) 0 var(--space-3)}.done .btn{max-width:420px}.sheet-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:end center;background:rgb(28 28 28/.4)}.sheet{width:min(480px,100%);display:grid;grid-gap:var(--space-3);gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-canvas);box-shadow:var(--shadow-sheet)}.sheet-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-2);gap:var(--space-2)}@media (min-width:900px){.sheet-backdrop{place-items:center}.sheet{border-radius:var(--radius-lg)}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important;scroll-behavior:auto!important}}