.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sello-envoltura{width:fit-content;max-width:100%;margin-inline:auto;position:relative}.sello-papel{position:relative}.sello-impreso{border:3px solid var(--herb-deep);color:var(--herb-deep);text-transform:uppercase;opacity:.88;mix-blend-mode:multiply;pointer-events:none;border-radius:8px;flex-direction:column;align-items:center;padding:.35rem .75rem;font-family:Courier New,Courier,monospace;font-weight:700;line-height:1;display:flex;position:absolute;right:-.25rem;transform:rotate(-11deg)}.sello-impreso--arriba{top:1rem}.sello-impreso--abajo{bottom:.9rem}.sello-impreso__titulo{letter-spacing:4px;font-size:19px}.sello-impreso__sub{letter-spacing:2.5px;margin-top:4px;font-size:9px}.sello-nota{max-width:300px;color:var(--muted);align-items:flex-start;gap:.4rem;margin:.9rem auto 0;font-size:.8rem;font-weight:600;line-height:1.35;display:flex}.sello-nota__marca{color:var(--herb-deep);font-weight:700}@media print{.sello-impreso,.sello-nota{display:none!important}}.demo-credenciales{border:1.5px dashed var(--saffron-deep);border-radius:var(--radius);background:var(--cream);margin-top:1.4rem;padding:1rem 1.1rem}.demo-credenciales__titulo{letter-spacing:.14em;text-transform:uppercase;color:var(--saffron-deep);margin:0 0 .2rem;font-size:.74rem;font-weight:700}.demo-credenciales__nota{color:var(--muted);margin:0 0 .7rem;font-size:.85rem}.demo-credenciales ul{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.demo-credenciales li{border-top:1px solid var(--line-soft);align-items:center;gap:.6rem;padding-top:.55rem;display:flex}.demo-credenciales li:first-child{border-top:none;padding-top:0}.demo-credenciales__quien{flex:1;min-width:0}.demo-credenciales__rol{color:var(--ink);font-size:.92rem;font-weight:600;display:block}.demo-credenciales__correo{color:var(--muted);overflow-wrap:anywhere;font-size:.78rem;display:block}.demo-credenciales__usar{flex:none;padding:.4em .95em;font-size:.85rem}:root{--cream:#f7f3ff;--cream-2:#eee5fb;--paper:#fff;--espresso:#2f0a67;--espresso-2:#111216;--ink:#17131c;--muted:#6f6678;--line:#d9cdea;--line-soft:#ece5f5;--saffron:#ffc400;--saffron-deep:#e89b00;--terracotta:#48118a;--herb:#4a8c4a;--herb-deep:#3c763c;--chili:#c0392b;--gold-glow:#ffc40038;--shadow-sm:0 1px 2px #2f0a6714, 0 1px 1px #1112160a;--shadow-md:0 8px 24px -10px #2f0a674d, 0 2px 6px -2px #1112161f;--shadow-lg:0 24px 60px -18px #2f0a6766;--radius:14px;--radius-sm:10px;--radius-lg:22px;--sans:"Outfit", system-ui, sans-serif;--display:"Fraunces", "Outfit", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:17px;line-height:1.5}*{box-sizing:border-box}body{background-color:var(--cream);background-image:radial-gradient(1200px 600px at 88% -10%, var(--gold-glow), transparent 60%), radial-gradient(900px 500px at -10% 8%, #48118a1f, transparent 55%);background-attachment:fixed;min-height:100svh;margin:0}body:before{content:"";z-index:-1;pointer-events:none;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");position:fixed;inset:0}#root{text-align:left;flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--display);color:var(--ink);letter-spacing:-.015em;margin:0 0 .5em;font-weight:600;line-height:1.08}h1{font-size:clamp(2rem,4vw,2.9rem);font-weight:600}h2{font-optical-sizing:auto;font-size:clamp(1.4rem,2.4vw,1.9rem)}h3{color:var(--espresso);margin:1.4em 0 .6em;font-size:1.15rem;font-weight:600}p{margin:0 0 .4em}a{color:var(--saffron-deep);font-weight:500;text-decoration:none}a:hover{color:var(--terracotta);text-underline-offset:3px;text-decoration:underline}.muted{color:var(--muted)}:where(p[role=alert],.error){color:var(--chili);font-weight:500}:where(td,.price,.num,input[type=number]){font-variant-numeric:tabular-nums}label{letter-spacing:.02em;color:var(--muted);margin-bottom:.5em;font-size:.82rem;font-weight:600;display:block}input,select,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-sm);appearance:none;width:100%;padding:.6em .8em;transition:border-color .15s,box-shadow .15s,background .15s}label>input,label>select{margin-top:.35em}input::placeholder{color:#9d91aa}input:hover,select:hover,textarea:hover{border-color:var(--saffron)}input:focus,select:focus,textarea:focus{border-color:var(--saffron);box-shadow:0 0 0 4px var(--gold-glow);background:#fff;outline:none}select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23897b6b' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right .85em center;background-repeat:no-repeat;padding-right:2.2em}button{font:inherit;letter-spacing:.01em;cursor:pointer;border:1.5px solid var(--espresso);background:var(--espresso);color:#fdf6ea;box-shadow:var(--shadow-sm);border-radius:999px;padding:.6em 1.25em;font-weight:600;transition:transform 80ms,box-shadow .18s,background .18s,filter .18s}button:hover{filter:brightness(1.12);box-shadow:var(--shadow-md)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;filter:none;box-shadow:none}button:focus-visible{outline:3px solid var(--gold-glow);outline-offset:2px}.btn-primary{background:linear-gradient(180deg, var(--saffron), var(--saffron-deep));color:var(--espresso-2);border-color:#c27f00}.btn-success{background:linear-gradient(180deg, var(--herb), var(--herb-deep));border-color:var(--herb-deep);color:#fff}.btn-danger{background:var(--chili);border-color:var(--chili);color:#fff}.btn-ghost{color:var(--ink);border-color:var(--line);box-shadow:none;background:0 0}.btn-ghost:hover{background:var(--cream-2);filter:none}.btn-block{width:100%;display:block}.btn-lg{padding:.85em 1.4em;font-size:1.05rem}table{border-collapse:collapse;width:100%;font-size:.95rem}thead th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:2px solid var(--line);padding:.5em .7em;font-size:.72rem;font-weight:700}tbody td{border-bottom:1px solid var(--line-soft);padding:.7em}tbody tr{transition:background .12s}tbody tr:hover{background:#ffc4001a}.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:clamp(1.1rem,3vw,2rem);animation:.5s cubic-bezier(.2,.7,.2,1) both rise}.app-bar{z-index:20;background:linear-gradient(135deg, var(--espresso-2), var(--espresso) 62%, #48118a);color:#f3e7d3;border-bottom:2px solid #ffc400b3;align-items:center;gap:.4rem;padding:.7rem clamp(1rem,3vw,1.6rem);display:flex;position:sticky;top:0;box-shadow:0 6px 24px -12px #0000008c}.brand{font-family:var(--display);align-items:center;gap:.55rem;margin-right:.8rem;display:flex}.brand-logo{aspect-ratio:1;object-fit:cover;border-radius:50%;flex:none;display:block}.brand-logo--compact{border:2px solid var(--saffron);width:42px;height:42px;box-shadow:0 3px 12px #00000059}.brand-logo--hero{border:4px solid var(--saffron);width:clamp(150px,48vw,210px);height:clamp(150px,48vw,210px);box-shadow:var(--shadow-md);margin:0 auto .9rem}.brand-name{color:#fff;letter-spacing:-.01em;font-size:1.2rem;font-weight:600}.nav{flex-wrap:wrap;gap:.2rem;display:flex}.nav-link{color:#d9c7ad;border-radius:999px;padding:.4em .85em;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{color:#fff;background:#ffffff14;text-decoration:none}.nav-link.active{color:var(--espresso-2);background:var(--saffron);box-shadow:0 2px 12px -2px #ffc400a6}.app-bar .spacer{margin-left:auto}.user-chip{color:#f3e7d3;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;display:flex}.user-chip .avatar{background:linear-gradient(180deg, var(--saffron), var(--saffron-deep));width:30px;height:30px;color:var(--espresso-2);font-family:var(--display);border-radius:50%;place-items:center;font-size:.85rem;font-weight:600;display:grid}.btn-logout{color:#f3e7d3;box-shadow:none;background:0 0;border:1.5px solid #f3e7d34d;padding:.4em .9em;font-size:.9rem}.btn-logout:hover{filter:none;background:#ffffff1a;border-color:#f3e7d399}.sync-pill{background:#ffffff12;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:.45rem;padding:.3em .75em;font-size:.78rem;font-weight:600;display:inline-flex}.sync-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.sync-ok{color:#7fd18a}.sync-busy{color:var(--saffron)}.sync-busy .sync-dot{animation:1.1s ease-in-out infinite pulse}.sync-off{color:#e8a17a}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.4rem}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--saffron-deep);margin-bottom:.4rem;font-size:.74rem;font-weight:700}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:1rem;display:flex}.toolbar input,.toolbar select{width:auto;min-width:8rem}.alert-warn{color:#7a5410;border-radius:var(--radius-sm);background:linear-gradient(#fff5e0,#ffedcb);border:1px solid #f0c469;margin-bottom:1rem;padding:.8em 1em;font-weight:500}.auth-wrap{flex:1;place-items:center;min-height:100svh;padding:2rem 1.2rem;display:grid}.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:410px;box-shadow:var(--shadow-lg);padding:clamp(1.8rem,5vw,2.8rem);animation:.6s cubic-bezier(.2,.7,.2,1) both rise;position:relative;overflow:hidden}.auth-card:before{content:"";background:linear-gradient(90deg, var(--espresso), var(--saffron), var(--terracotta));height:5px;position:absolute;inset:0 0 auto}.auth-brand{text-align:center;margin-bottom:1.6rem}.auth-title{font-family:var(--display);margin:0;font-size:1.9rem;font-weight:600}.auth-sub{color:var(--muted);margin-top:.25rem;font-size:.92rem}.field{margin-bottom:1rem}.auth-card form>button{margin-top:.4rem}.pos-grid{grid-template-columns:1fr 340px;align-items:start;gap:1.3rem;display:grid}.pos-products{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;display:grid}.pos-product{text-align:left;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);color:var(--ink);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;align-items:flex-start;gap:.3rem;min-height:88px;padding:.95rem 1rem;display:flex}.pos-product:hover{border-color:var(--saffron);box-shadow:var(--shadow-md);filter:none;transform:translateY(-3px)}.pos-product:disabled{opacity:.45;cursor:not-allowed}.pos-product:disabled:hover{border-color:var(--line);box-shadow:var(--shadow-sm);transform:none}.pos-product .nombre{font-weight:600;line-height:1.15}.pos-product .precio{font-family:var(--display);color:var(--terracotta);font-size:1.25rem;font-weight:600}.pos-product .cat{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.66rem;font-weight:700}.pos-cart{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.3rem;position:sticky;top:84px}.cart-line{border-bottom:1px dashed var(--line);align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.cart-line .nombre{flex:1;font-weight:500}.cart-line input{text-align:center;width:56px;padding:.35em}.cart-line .lp{font-variant-numeric:tabular-nums;text-align:right;min-width:64px;font-weight:600}.cart-x{color:var(--muted);box-shadow:none;background:0 0;border:none;padding:.2em .4em;font-size:1rem}.cart-x:hover{color:var(--chili);filter:none}.cart-total{justify-content:space-between;align-items:baseline;margin:1rem 0 .8rem;display:flex}.cart-total .label{color:var(--muted);font-weight:600}.cart-total .amount{font-family:var(--display);color:var(--ink);font-size:2rem;font-weight:600}.cart-empty{color:var(--muted);text-align:center;padding:1.5rem 0}.change-line{color:var(--herb-deep);margin-top:.5rem;font-weight:600}.kv{border-collapse:collapse;width:100%;margin-bottom:1.2rem}.kv td{border-bottom:1px solid var(--line-soft);padding:.55em 0}.kv td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.kv tr.total td{border-top:2px solid var(--line);font-family:var(--display);border-bottom:none;padding-top:.7em;font-size:1.15rem}.diff-neg{color:var(--chili);font-weight:700}.diff-pos{color:var(--saffron-deep);font-weight:700}.diff-zero{color:var(--herb-deep);font-weight:700}.narrow{max-width:440px;margin-inline:auto}.tag{text-transform:capitalize;border-radius:999px;padding:.2em .6em;font-size:.72rem;font-weight:700;display:inline-block}.tag-in{color:var(--herb-deep);background:#4a8c4a24}.tag-out{color:var(--chili);background:#c0392b1f}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-loading{flex:1;place-content:center;justify-items:center;gap:.9rem;min-height:100svh;display:grid}.app-loading-mark{font-size:2.6rem;animation:1.4s ease-in-out infinite pulse}.app-loading-spin{border:3px solid var(--line);border-top-color:var(--saffron);border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.pos-grid{grid-template-columns:1fr}.pos-cart{position:static}.app-bar{flex-wrap:wrap}.pos-grid .card>div:has(>span+button){flex-wrap:wrap}.pos-grid .card>div:has(>span+button)>span{flex-basis:100%!important}}@media (prefers-reduced-motion:reduce){*,:before{transition:none!important;animation:none!important}}.progress-timeout{background:var(--line-soft);border-radius:999px;width:100%;height:6px;margin-top:.8rem;overflow:hidden}.progress-timeout-fill{background:linear-gradient(90deg, var(--saffron), var(--herb));border-radius:999px;width:0%;height:100%;animation:5s linear forwards progress-timeout-fill}@keyframes progress-timeout-fill{0%{width:0%}to{width:100%}}.cliente-box{border-top:1px dashed var(--line);margin-top:1rem;padding-top:1rem}.cliente-box input[type=tel]{flex:1}.cliente-info{margin-top:.6rem;font-size:.95rem}.recompensas-disp{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}.cliente-registro{flex-direction:column;gap:.5rem;margin-top:.6rem;display:flex}
