:root{--bg:#f6f1ea;--surface:#fff;--ink:#2b211b;--brand:#5b3a29;--brand-2:#8d5b3e;--accent:#c9762e;--on-brand:#fff;--on-brand-2:#fff;--surface-2:color-mix(in srgb, var(--surface) 93%, var(--bg));--muted:color-mix(in srgb, var(--ink) 62%, var(--surface));--line:color-mix(in srgb, var(--ink) 13%, var(--surface));--ok:#2e7d32;--warn:#b85c00;--danger:#c62828;--radius:10px;--shadow:0 1px 2px #2b211b0f, 0 4px 14px #2b211b0f;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif;font-size:15px}*{box-sizing:border-box}body{min-width:1024px;margin:0}h1,h2,h3{margin:0 0 .5em;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}a{color:var(--brand-2)}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:0;padding:.5em .65em}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=checkbox],input[type=radio]{width:1.1em;height:1.1em;accent-color:var(--brand)}input[type=color]{width:42px;height:34px;padding:2px}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:.4em;padding:.55em 1em;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2);border-color:color-mix(in srgb, var(--line) 70%, var(--ink))}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:600}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--brand) 85%, black);border-color:color-mix(in srgb, var(--brand) 85%, black)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-ghost{color:var(--danger)}.btn-small{padding:.3em .65em;font-size:.88rem}.btn-big{padding:.85em 1.4em;font-size:1.08rem}.btn-link{color:var(--brand-2);cursor:pointer;background:0 0;border:none;padding:.3em;text-decoration:underline}.btn-icon{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:1.6rem;line-height:1}.row{align-items:center;display:flex}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.center{justify-content:center}.wrap{flex-wrap:wrap}.gap-s{gap:.5rem}.gap{gap:1rem}.stack{flex-direction:column;gap:1rem;display:flex}.muted{color:var(--muted)}.small{font-size:.88rem}.error{color:var(--danger)}.ok{color:var(--ok)}.warn{color:var(--warn)}.strong{font-weight:700}.mono{font-family:Consolas,Courier New,monospace;font-size:.9em}.num{text-align:right;font-variant-numeric:tabular-nums}.center{text-align:center}.neg{color:var(--danger)}.pos{color:var(--ok)}.w-s{width:70px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:340px;overflow:hidden}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.2rem}.card.narrow{max-width:760px}.empty{text-align:center;color:var(--muted);padding:2rem}.loading{text-align:center;color:var(--muted);padding:3rem}.alert{color:#6b3d00;background:#fff4e5;border:1px solid #f2d3a8;border-radius:8px;margin:.5rem 0;padding:.6rem .9rem}.tag{background:color-mix(in srgb, var(--brand-2) 14%, var(--surface));color:var(--muted);border-radius:999px;padding:.1em .5em;font-size:.78rem;display:inline-block}.field{flex-direction:column;gap:.3rem;margin-bottom:.75rem;display:flex}.field>span{color:var(--muted);font-size:.85rem}.check{cursor:pointer;align-items:center;gap:.45rem;display:inline-flex}.check.big{font-size:1.1rem;font-weight:600}.check.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.3em .8em}.inline{align-items:center;gap:.4rem;display:inline-flex}.grid2{grid-template-columns:1fr 1fr;gap:0 1rem;display:grid}.grid3{grid-template-columns:repeat(3,1fr);align-items:end;gap:0 1rem;display:grid}.box{border:1px solid var(--line);border-radius:var(--radius);margin:0 0 1rem;padding:.6rem 1rem .8rem}.box legend{padding:0 .4rem;font-weight:600}.list{margin:.5rem 0;padding:0;list-style:none}.list>li{border-bottom:1px solid var(--line);padding:.45rem 0}.list>li:last-child{border-bottom:none}.segmented{border:1px solid var(--line);border-radius:8px;margin-bottom:.5rem;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);cursor:pointer;border:none;padding:.5em .9em}.segmented button+button{border-left:1px solid var(--line)}.segmented .active{background:var(--brand);color:var(--on-brand)}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:auto}.table-wrap.tall{max-height:55vh}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:.55rem .7rem}.table th{background:var(--surface-2);color:var(--muted);z-index:1;font-size:.82rem;font-weight:600;position:sticky;top:0}.table th.num{text-align:right}.table.small th,.table.small td{padding:.35rem .55rem;font-size:.9rem}.table.narrow{max-width:420px}.table tr.inactive td{color:var(--muted)}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table td.actions{white-space:nowrap;text-align:right}.table td.actions .btn+.btn{margin-left:.3rem}.table tfoot td{border-bottom:none}.group-row td{background:color-mix(in srgb, var(--brand-2) 10%, var(--surface));font-size:.85rem;font-weight:600}.shell{flex-direction:column;height:100vh;display:flex}.topbar{background:var(--brand);color:var(--on-brand);flex-shrink:0;align-items:center;gap:1rem;height:52px;padding:0 1rem;display:flex}.brand-small{letter-spacing:.2px;white-space:nowrap;font-weight:700}.mainnav{gap:.15rem;display:flex;overflow-x:auto}.mainnav a{color:color-mix(in srgb, var(--on-brand) 82%, var(--brand));white-space:nowrap;border-radius:8px;padding:.45rem .8rem;text-decoration:none}.mainnav a:hover{background:color-mix(in srgb, var(--on-brand) 12%, transparent)}.mainnav a.active{background:var(--surface);color:var(--brand);font-weight:600}.topbar-right{align-items:center;gap:.6rem;margin-left:auto;font-size:.88rem;display:flex}.topbar-right .btn{color:var(--on-brand);border-color:color-mix(in srgb, var(--on-brand) 35%, transparent);background:0 0}.topbar-right .btn:hover{background:color-mix(in srgb, var(--on-brand) 12%, transparent)}.user-name{font-weight:600}.sync-badge,.shift-badge{background:color-mix(in srgb, var(--on-brand) 14%, transparent);white-space:nowrap;border-radius:999px;padding:.15em .6em}.sync-badge.offline{background:#e65100}.shift-badge.open{background:#2e7d32}.content{flex:1;min-height:0;overflow:auto}.page{flex-direction:column;gap:1rem;max-width:1400px;margin:0 auto;padding:1.2rem 1.5rem 2rem;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-head h1{margin:0}.filters{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.filters input[type=search]{min-width:240px}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.25rem;display:flex}.tabs a,.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:3px solid #0000;padding:.55rem .9rem;text-decoration:none}.tabs a.active,.tabs button.active{border-color:var(--brand);color:var(--ink);font-weight:600}.center-card{flex-direction:column;gap:.8rem;max-width:420px;margin:3rem auto;display:flex}.login{background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--brand-2) 18%, var(--bg)), var(--bg) 60%);place-items:center;min-height:100vh;padding:2rem;display:grid}.login-card{text-align:center;flex-direction:column;align-items:stretch;gap:.6rem;width:100%;max-width:560px;padding:2rem;display:flex}.login-card .field{text-align:left}.brand{color:var(--brand);font-size:1.7rem}.user-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.7rem;display:grid}.user-btn{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;flex-direction:column;align-items:center;gap:.3rem;padding:1rem .5rem;display:flex}.user-btn:hover{border-color:var(--brand-2)}.avatar{background:var(--brand-2);width:48px;height:48px;color:var(--on-brand-2);border-radius:50%;place-items:center;font-size:1.3rem;font-weight:700;display:grid}.pinpad{flex-direction:column;align-items:center;gap:1rem;margin:.5rem 0;display:flex}.pin-dots{gap:.6rem;min-height:18px;display:flex}.pin-dots span{border:2px solid var(--brand-2);border-radius:50%;width:14px;height:14px}.pin-dots span.on{background:var(--brand-2)}.pin-keys{grid-template-columns:repeat(3,76px);gap:.55rem;display:grid}.pin-key{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;height:60px;font-size:1.35rem}.pin-key:hover{background:var(--surface-2)}.pin-ok{background:var(--brand);color:var(--on-brand);font-size:1rem;font-weight:600}.lock-overlay{z-index:50;position:fixed;inset:0}.sell{grid-template-columns:1fr 400px;height:100%;min-height:0;display:grid}.sell-catalog{flex-direction:column;gap:.6rem;min-height:0;padding:.8rem 1rem 0;display:flex}.sell-search input{width:100%;padding:.7em .9em;font-size:1.05rem}.cat-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.cat-tabs button{--cat:var(--brand-2);border:1px solid var(--line);background:var(--surface);border-left:5px solid var(--cat);cursor:pointer;border-radius:8px;padding:.55em 1em;font-weight:600}.cat-tabs button.active{background:var(--cat);border-color:var(--cat);color:#fff}.product-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:96px;align-content:start;gap:.6rem;padding-bottom:1rem;display:grid;overflow:auto}.product-btn{--cat:var(--brand-2);text-align:left;border:1px solid var(--line);border-top:5px solid var(--cat);border-radius:var(--radius);background:var(--surface);cursor:pointer;box-shadow:var(--shadow);flex-direction:column;justify-content:space-between;align-items:flex-start;padding:.6rem .7rem;transition:transform 60ms;display:flex;position:relative}.product-btn:hover{border-color:var(--cat)}.product-btn:active{transform:scale(.97)}.pname{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.pprice{color:var(--brand);font-size:1.05rem;font-weight:700}.pstock{color:var(--muted);font-size:.75rem;position:absolute;bottom:.55rem;right:.5rem}.pstock.low{color:var(--danger);font-weight:700}.ticket{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.ticket-head{justify-content:space-between;align-items:center;padding:.8rem 1rem .4rem;display:flex}.ticket-head h2{margin:0}.ticket-lines{flex:1;margin:0;padding:0 .6rem;list-style:none;overflow:auto}.tline{border-bottom:1px dashed var(--line);grid-template-columns:1fr auto 86px;align-items:center;gap:.5rem;padding:.5rem .4rem;display:grid}.tline-main{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;padding:0;display:flex}.tname{font-weight:600}.tnote{color:var(--muted);font-size:.8rem}.tprice{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.qty{align-items:center;gap:.35rem;display:flex}.qty button{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:8px;width:32px;height:32px;font-size:1.1rem}.qty span{text-align:center;min-width:1.6em;font-weight:700}.ticket-totals{border-top:1px solid var(--line);background:var(--surface-2);padding:.6rem 1rem}.trow{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.trow.total{color:var(--brand);font-size:1.5rem;font-weight:800}.ticket-actions{grid-template-columns:1fr 1fr;gap:.5rem;padding:.6rem 1rem 1rem;display:grid}.ticket-actions .btn-big{grid-column:1/-1;padding:1rem;font-size:1.25rem}.sale-done{background:color-mix(in srgb, var(--bg) 85%, transparent);z-index:20;place-items:center;display:grid;position:fixed;inset:52px 0 0}.sale-done .card{text-align:center;padding:2rem 3rem}.change{font-size:1.6rem}.change strong{color:var(--ok)}.pay{grid-template-columns:1.2fr 1fr;gap:1.5rem;display:grid}.pay-total{background:var(--surface-2);border-radius:var(--radius);justify-content:space-between;align-items:baseline;margin-bottom:.8rem;padding:.8rem 1rem;display:flex}.pay-total strong{color:var(--brand);font-size:2rem}.method-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.8rem;display:grid}.method-grid button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;padding:.75rem .5rem;font-weight:600}.method-grid button.active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.money-input{width:100%;padding:.5em .6em;font-size:1.4rem;font-weight:700}.bills{flex-wrap:wrap;gap:.4rem;display:flex}.pay-status{align-items:center;gap:.8rem;min-height:3rem;margin-top:.8rem;font-size:1.2rem;display:flex}.pay-status strong{font-size:1.7rem}.customer{border:1px solid var(--line);border-radius:var(--radius);margin-top:.8rem;padding:.6rem .9rem}.modal-backdrop{z-index:40;background:#2b211b73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:14px;flex-direction:column;width:min(560px,100%);max-height:92vh;display:flex;box-shadow:0 20px 50px #00000040}.modal-wide{width:min(980px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.9rem 1.2rem;display:flex}.modal-head h2{margin:0}.modal-body{padding:1rem 1.2rem;overflow:auto}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:.8rem 1.2rem;display:flex}.toasts{z-index:100;flex-direction:column;gap:.5rem;max-width:420px;display:flex;position:fixed;bottom:1rem;left:1rem}.toast{background:color-mix(in srgb, var(--ink) 92%, var(--bg));color:var(--bg);box-shadow:var(--shadow);cursor:pointer;border-radius:10px;padding:.7rem 1rem}.toast-ok{background:#1f5e2b}.toast-error{background:var(--danger)}.stats{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.stat{flex-direction:column;gap:.2rem;display:flex}.stat strong{color:var(--brand);font-size:1.5rem}.span2{grid-column:span 2}.close-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.close-grid input[type=number]{width:90px}.close-summary{background:var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:.4rem;margin-bottom:1rem;padding:.8rem 1rem;font-size:1.1rem;display:flex}.report-frame{border:1px solid var(--line);border-radius:8px;width:100%;height:60vh}.report-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.hbars{flex-direction:column;gap:.35rem;display:flex}.hbar-row{grid-template-columns:150px 1fr 110px;align-items:center;gap:.6rem;font-size:.9rem;display:grid}.hbar{background:color-mix(in srgb, var(--brand-2) 14%, var(--surface));border-radius:4px;height:14px;overflow:hidden}.hbar span{background:var(--brand-2);border-radius:4px;height:100%;display:block}.step h2{margin-bottom:.8rem}.chip-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:.3em .9em}.chip-btn.active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.tag.st-nuevo{color:#1f5e2b;background:#e3f2e5}.tag.st-actualizar{color:#1d4f7a;background:#e3eef8}.tag.st-duplicado,.tag.st-omitido{color:var(--muted);background:#f1ece6}.tag.st-error{color:var(--danger);background:#fde7e7}.tag.inv-pendiente,.tag.inv-por_exportar,.tag.inv-exportada{color:#6b3d00;background:#fff4e5}.tag.inv-enviada{color:#1f5e2b;background:#e3f2e5}.tag.inv-error{color:var(--danger);background:#fde7e7}.mode-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;margin-bottom:.8rem;display:grid}.mode-card{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:.3rem;padding:.8rem;display:flex}.mode-card.active{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 22%, transparent)}.perm-table td:first-child{min-width:300px}.receipt-settings{grid-template-columns:1fr auto;align-items:start;gap:1.5rem;display:grid}.rs-preview{position:sticky;top:0}.sticky-actions{background:var(--bg);padding:.6rem 0;position:sticky;bottom:0}.receipt-paper{color:#111;box-shadow:var(--shadow);border:1px solid var(--line);background:#fff;max-height:78vh;padding:14px 12px 6px;font-family:Courier New,Consolas,monospace;font-size:13px;line-height:1.3;overflow:auto}.rp-row{white-space:pre}.rp-row.b{font-weight:700}.rp-row.d{font-size:2em;font-weight:700;line-height:1.15}.rp-row.a{transform-origin:top;margin-bottom:.85em;transform:scaleY(1.8)}.rp-center{text-align:center;padding:4px 0}.rp-qr{width:120px}.rp-logo{max-width:100%;image-rendering:pixelated}.rp-cut{color:#bbb;text-align:center;margin-top:10px;font-size:11px}@media (width<=1200px){.sell{grid-template-columns:1fr 360px}.stats{grid-template-columns:repeat(2,1fr)}.report-grid,.receipt-settings{grid-template-columns:1fr}}.modal:focus{outline:none}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;display:grid}.preset-card{border:2px solid var(--line);border-radius:var(--radius);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:.5rem;padding:0 0 .7rem;display:flex;overflow:hidden}.preset-card strong{padding:0 .7rem}.preset-card.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent)}.preset-bar{width:100%;height:22px}.preset-swatches{gap:.3rem;padding:0 .7rem;display:flex}.preset-swatches span{border:1px solid #00000026;border-radius:50%;width:22px;height:22px}.color-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem 1.5rem;margin:.5rem 0 1rem;display:grid}.color-field{align-items:flex-start;gap:.8rem;display:flex}.color-field input[type=color]{cursor:pointer;border-radius:10px;flex-shrink:0;width:56px;height:56px}.hex-input{width:110px;margin-top:.3rem;padding:.3em .5em}.theme-preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);overflow:hidden}.tp-bar{background:var(--brand);color:var(--on-brand);align-items:center;gap:.8rem;padding:.6rem 1rem;display:flex}.tp-tab{color:color-mix(in srgb, var(--on-brand) 82%, var(--brand));border-radius:8px;padding:.25rem .7rem}.tp-tab.active{background:var(--surface);color:var(--brand);font-weight:600}.tp-body{grid-template-columns:1fr 260px;gap:1rem;padding:1rem;display:grid}.tp-products{grid-template-columns:repeat(3,1fr);grid-auto-rows:90px;gap:.6rem;display:grid}.tp-ticket{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:.8rem;display:flex}
