:root{--background: oklch(.99 .004 70);--surface: oklch(.97 .006 70);--border: oklch(.88 .01 70);--foreground: oklch(.2 .01 60);--muted-foreground: oklch(.45 .01 60);--primary: oklch(.55 .14 45);--primary-foreground: oklch(.98 .01 70);--destructive: oklch(.55 .2 25);--destructive-foreground: oklch(.98 .01 70);--touch-target: 3rem;--radius: .75rem;--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--shadow-sm: 0 1px 2px oklch(.2 .02 60 / .06);--shadow-md: 0 1px 2px oklch(.2 .02 60 / .05), 0 8px 20px -4px oklch(.2 .02 60 / .1)}:root[data-theme=dark]{--background: oklch(.19 .008 60);--surface: oklch(.24 .01 60);--border: oklch(.32 .012 60);--foreground: oklch(.95 .005 70);--muted-foreground: oklch(.7 .01 70);--primary: oklch(.63 .14 45);--primary-foreground: oklch(.98 .01 70);--destructive: oklch(.6 .19 25);--destructive-foreground: oklch(.98 .01 70);--shadow-sm: 0 1px 2px oklch(0 0 0 / .35);--shadow-md: 0 1px 2px oklch(0 0 0 / .3), 0 8px 20px -4px oklch(0 0 0 / .5)}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}ul{list-style:none}body{min-height:100vh;color:var(--foreground);background:var(--background);line-height:1.4;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}button,input{font-family:inherit;font-size:inherit}h1,h2{font-weight:600;letter-spacing:-.01em}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--background: oklch(.19 .008 60);--surface: oklch(.24 .01 60);--border: oklch(.32 .012 60);--foreground: oklch(.95 .005 70);--muted-foreground: oklch(.72 .01 70);--primary: oklch(.63 .14 45);--primary-foreground: oklch(.98 .01 70);--destructive: oklch(.62 .19 25);--destructive-foreground: oklch(.98 .01 70);--shadow-sm: 0 1px 2px oklch(0 0 0 / .35);--shadow-md: 0 1px 2px oklch(0 0 0 / .3), 0 8px 20px -4px oklch(0 0 0 / .5)}}:root{--touch-target: 3rem;--gap: .5rem;--nav-height: 3.5rem;--rail-width: 4.5rem;--cart-width: 23.75rem;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--success: oklch(.55 .13 150);color-scheme:light dark}html,body,#root{height:100%}body{min-height:100dvh;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}input,select,textarea{font-size:1rem;-webkit-user-select:text;user-select:text}button{cursor:pointer;color:inherit}ul{padding:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--touch-target);min-width:var(--touch-target);padding:0 1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font-size:1rem;font-weight:500;white-space:nowrap;transition:transform .15s ease,background-color .15s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.btn-destructive{background:var(--destructive);border-color:var(--destructive);color:var(--destructive-foreground)}.btn-ghost{background:transparent;border-color:transparent}.btn-block{width:100%}.btn-lg{min-height:3.5rem;font-size:1.1rem;font-weight:600}.link-button{background:none;border:none;color:var(--primary);font-weight:500;min-height:var(--touch-target);padding:0 .5rem;text-decoration:underline}.input{width:100%;min-height:var(--touch-target);padding:0 .875rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--background);color:var(--foreground)}.input:focus{outline:2px solid var(--primary);outline-offset:0}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-weight:500}.field-error,.error-text{color:var(--destructive);font-size:.95rem}.muted{color:var(--muted-foreground)}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;align-items:center;gap:var(--gap)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--gap)}.grow{flex:1;min-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.notice{border-radius:var(--radius);padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border)}.notice-error{border-color:var(--destructive)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--border);font-size:.85rem;white-space:nowrap}.badge-warning{border-color:var(--destructive);color:var(--destructive)}.seg{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.seg button{flex:1;min-height:var(--touch-target);border:none;background:var(--background);font-weight:500}.seg button+button{border-left:1px solid var(--border)}.seg button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.big-number{font-size:2.25rem;font-weight:700;letter-spacing:-.02em}.negative{color:var(--destructive)}.centered-screen{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:calc(1.5rem + var(--safe-top)) 1rem calc(1.5rem + var(--safe-bottom))}.centered-card{width:100%;max-width:26rem;display:flex;flex-direction:column;gap:1rem}.centered-card h1{font-size:1.5rem}.progress{height:.5rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);overflow:hidden}.progress>div{height:100%;background:var(--primary);width:40%;animation:progress-slide 1.2s ease-in-out infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.code-dots{display:flex;justify-content:center;gap:.75rem;min-height:1.25rem}.code-dots span{width:.9rem;height:.9rem;border-radius:50%;border:2px solid var(--muted-foreground)}.code-dots span.filled{background:var(--foreground);border-color:var(--foreground)}.keypad{display:grid;grid-template-columns:repeat(3,minmax(4rem,1fr));gap:.5rem}.keypad button{min-height:3.5rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font-size:1.4rem;font-weight:600}.keypad button:active{background:var(--border)}.shake{animation:shake .3s ease}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.shell{height:100dvh;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.shell-header{display:flex;align-items:center;gap:var(--gap);padding:calc(.5rem + var(--safe-top)) 1rem .5rem;border-bottom:1px solid var(--border);background:var(--surface);min-height:3.5rem}.shell-header h1{font-size:1.05rem}.shell-main{grid-row:2;overflow:auto;min-height:0;position:relative}.nav{grid-row:3;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);background:var(--surface);padding-bottom:var(--safe-bottom)}.nav button{min-height:var(--nav-height);border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;font-size:.8rem;color:var(--muted-foreground)}.nav button[aria-current=page]{color:var(--primary);font-weight:600}@media(min-width:1024px){.shell{grid-template-columns:var(--rail-width) 1fr;grid-template-rows:auto 1fr}.shell-header{grid-column:1 / -1}.nav{grid-row:2;grid-column:1;grid-template-columns:1fr;grid-auto-rows:min-content;border-top:none;border-right:1px solid var(--border);padding:.5rem 0}.shell-main{grid-row:2;grid-column:2}}.sync-indicator{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--border);background:var(--background);min-height:2rem;white-space:nowrap}.sync-indicator .dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--success)}.sync-indicator.offline .dot{background:var(--destructive)}.page{padding:1rem;display:flex;flex-direction:column;gap:1rem;max-width:48rem;margin:0 auto}.sale{display:grid;grid-template-columns:1fr;height:100%;min-height:0}.sale-products{display:flex;flex-direction:column;min-height:0;overflow:hidden}.sale-search{padding:.75rem 1rem .5rem;display:flex;gap:var(--gap)}.chips{display:flex;gap:var(--gap);overflow-x:auto;padding:0 1rem .5rem;scrollbar-width:none}.chips button{flex:none;min-height:2.75rem;padding:0 1rem;border-radius:999px;border:1px solid var(--border);background:var(--background);white-space:nowrap}.chips button[aria-pressed=true]{background:var(--foreground);color:var(--background);border-color:var(--foreground)}.product-scroll{flex:1;overflow:auto;padding:0 1rem 1rem}.product-list{display:flex;flex-direction:column;gap:.5rem}.product-row{display:flex;align-items:center;gap:.75rem;width:100%;min-height:3.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left}.product-row img,.product-row .thumb{width:2.75rem;height:2.75rem;border-radius:.5rem;object-fit:cover;background:var(--border);flex:none}.product-row .price{font-weight:600;white-space:nowrap}@media(min-width:600px){.product-list{display:grid;grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.sale{grid-template-columns:1fr var(--cart-width)}.product-list{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}}.cart-column{display:none;border-left:1px solid var(--border);background:var(--surface);min-height:0}@media(min-width:1024px){.cart-column{display:flex;flex-direction:column}.cart-bar{display:none!important}}.cart-bar{position:sticky;bottom:0;padding:.5rem 1rem .75rem;background:linear-gradient(to top,var(--background) 70%,transparent)}.cart{display:flex;flex-direction:column;min-height:0;height:100%}.cart-lines{flex:1;overflow:auto;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.cart-line{display:flex;align-items:center;gap:.5rem}.cart-line-main{flex:1;min-width:0;text-align:left;background:none;border:none;padding:.25rem 0;min-height:var(--touch-target)}.stepper{display:flex;align-items:center;gap:.25rem}.stepper button{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius);border:1px solid var(--border);background:var(--background);font-size:1.2rem}.stepper span{min-width:1.75rem;text-align:center;font-weight:600}.cart-totals{border-top:1px solid var(--border);padding:.75rem 1rem calc(.75rem + var(--safe-bottom));display:flex;flex-direction:column;gap:.4rem}.cart-totals .total{font-size:1.2rem;font-weight:700}.sheet-backdrop{position:fixed;inset:0;background:#00000073;z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .15s ease}.sheet{width:100%;max-height:92dvh;background:var(--background);border-radius:1rem 1rem 0 0;display:flex;flex-direction:column;animation:sheet-up .15s var(--ease-out-quart);padding-bottom:var(--safe-bottom)}.sheet.full{height:92dvh}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.sheet-header h2{font-size:1.1rem}.sheet-body{overflow:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0}.sheet-footer{padding:.75rem 1rem;border-top:1px solid var(--border);display:flex;gap:var(--gap)}@media(min-width:1024px){.sheet-backdrop{align-items:center}.sheet{max-width:30rem;border-radius:1rem;max-height:85dvh}.sheet.full{height:auto}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}}@keyframes fade-in{0%{opacity:0}}.scanner{position:fixed;inset:0;z-index:50;background:#000;color:#fff;display:flex;flex-direction:column}.scanner video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scanner-window{position:absolute;left:10%;right:10%;top:30%;height:22%;border:3px solid #fff;border-radius:1rem;box-shadow:0 0 0 100vmax #00000073}.scanner-top,.scanner-bottom{position:relative;z-index:1;padding:calc(.75rem + var(--safe-top)) 1rem .75rem;display:flex;align-items:center;gap:var(--gap)}.scanner-bottom{margin-top:auto;flex-direction:column;align-items:stretch;padding-bottom:calc(1rem + var(--safe-bottom));background:linear-gradient(to top,oklch(0 0 0 / .8),transparent)}.scanner .btn{background:#ffffff26;border-color:#ffffff59;color:#fff}.scanner .btn-primary{background:var(--primary);border-color:var(--primary)}@media(orientation:landscape)and (max-height:480px){.scanner-bottom{position:absolute;right:0;top:0;bottom:0;width:16rem;justify-content:flex-end;background:linear-gradient(to left,oklch(0 0 0 / .8),transparent)}}.toasts{position:fixed;left:50%;bottom:calc(var(--nav-height) + 5rem + var(--safe-bottom));transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:.5rem;width:min(92vw,26rem);pointer-events:none}.toast{background:var(--foreground);color:var(--background);border-radius:var(--radius);padding:.75rem 1rem;box-shadow:var(--shadow-md);animation:sheet-up .15s var(--ease-out-quart)}.toast-error{background:var(--destructive);color:var(--destructive-foreground)}.receipt{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.5rem}.receipt-lines{display:flex;flex-direction:column;gap:.5rem;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);padding:.75rem 0}.list-button{display:flex;align-items:center;gap:.75rem;width:100%;min-height:3.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left}.day-heading{font-size:.9rem;font-weight:600;color:var(--muted-foreground);margin-top:.5rem}.success-icon{width:4rem;height:4rem;color:var(--success)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media print{.no-print{display:none!important}}.sale-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 1rem .5rem}.view-toggle{display:inline-flex;margin-left:auto;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.view-toggle button{display:grid;place-items:center;width:2.75rem;height:2.75rem;background:var(--surface);color:var(--muted-foreground)}.view-toggle button[aria-pressed=true]{background:var(--foreground);color:var(--background)}.variant-options{display:block;font-size:.85rem;color:var(--foreground);opacity:.8}.product-list.product-list--list{display:flex;flex-direction:column;gap:.25rem}.product-row.compact{min-height:3rem;padding:.375rem .75rem}.product-list.product-list--cards{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media(min-width:600px){.product-list.product-list--cards{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.product-list.product-list--cards{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr))}}.product-card{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.product-card .media{position:relative;display:grid;place-items:center;aspect-ratio:1 / 1;background:var(--border)}.product-card img{width:100%;height:100%;object-fit:cover}.product-card .initial{font-size:2.5rem;font-weight:700;color:var(--muted-foreground)}.product-card .stock-flag{position:absolute;top:.5rem;left:.5rem}.product-card .body{display:grid;gap:.125rem;padding:.5rem .75rem .75rem}.product-card .name{font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.product-card .price{font-weight:600}
