:root{--font-ui: "Avenir Next", "SF Pro Text", "Helvetica Neue", "Segoe UI", sans-serif;--bg-1: #ecf3f0;--bg-2: #dbe8f2;--ink: #1b2b38;--ink-soft: #5d7080;--surface: #ffffff;--surface-soft: #f4f8fb;--stroke: #c9d6e2;--brand-1: #0e3348;--brand-2: #144863;--brand-3: #1f5f76;--accent: #1a7a98;--accent-strong: #0f607a;--success: #1d7a4f;--error: #b64242;--radius-lg: 1rem;--radius-md: .75rem;--radius-sm: .625rem;--shadow-soft: 0 .6rem 1.75rem rgba(18, 41, 58, .1);--shadow-panel: 0 .5rem 1.25rem rgba(12, 34, 52, .07);--topbar-h: 4.5rem}html{font-size:clamp(14px,1.4vw,17px)}*,*:before,*:after{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-x pan-y}input,textarea,[contenteditable]{-webkit-user-select:auto;user-select:auto}html,body,#app{height:100%;overscroll-behavior:none}body{margin:0;font-family:var(--font-ui);color:var(--ink);background:linear-gradient(150deg,var(--bg-1) 0%,var(--bg-2) 100%)}button,select,input{font:inherit;color:inherit}.page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{flex-shrink:0;position:sticky;top:0;z-index:40;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.85rem 1rem;background:linear-gradient(120deg,var(--brand-1) 0%,var(--brand-2) 58%,var(--brand-3) 100%);color:#edf6fb;border-bottom:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-soft)}.brand{display:flex;align-items:center}.brand-logo{height:2rem;width:auto;display:block}.view-tabs{display:flex;gap:.5rem;justify-content:center}.tab{min-height:2.75rem;padding:.48rem .9rem;border:1px solid rgba(209,229,242,.35);border-radius:999px;background:#ffffff14;color:#e5f2fb;cursor:pointer;transition:background-color .15s ease,transform .15s ease,border-color .15s ease}.tab:hover{background:#ffffff29}.tab.active{background:#f3fbff;color:#18445c;border-color:#c6dce8;font-weight:700}.top-right{display:flex;justify-self:end;align-items:center;gap:.55rem}.topbar-center{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;pointer-events:none;z-index:1}.topbar-center .barmode-pill,.topbar-center .barmode-pill *{pointer-events:auto}.barmode-pill{position:relative;overflow:visible;display:inline-flex;align-items:center;min-height:2.25rem;padding:.4rem .9rem;border-radius:999px;background:#ffffff24;border:1px solid rgba(255,255,255,.42);color:#fff;font-weight:700;letter-spacing:.02em;pointer-events:auto;cursor:pointer}.barmode-pill .confetti-piece{position:absolute;top:var(--sy, 50%);left:var(--sx, 50%);width:var(--size, .35rem);height:var(--size, .35rem);border-radius:.3rem;background:var(--confetti-color, currentColor);opacity:0;transform:translate(-50%,-50%) rotate(var(--r, 0deg)) scale(var(--scale, 1));pointer-events:none;will-change:transform,opacity}.barmode-pill.confetti .confetti-piece{opacity:1;animation:confetti-burst .72s ease-out forwards}@keyframes confetti-burst{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--r, 0deg)) scale(var(--scale, 1))}80%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) translate(var(--dx, 0),var(--dy, 0)) rotate(calc(var(--r, 0deg) + 220deg)) scale(calc(var(--scale, 1) * .95))}}.icon-btn{width:2.75rem;height:2.75rem;border:1px solid rgba(212,232,244,.45);background:#ffffff1f;color:#edf6fb;border-radius:.75rem;display:grid;place-items:center;cursor:pointer}.icon-btn svg{width:1.25rem;height:1.25rem;fill:currentColor}.icon-btn:hover{background:#fff3}.icon-btn.barmode-active{background:#ffdc5047;border-color:#ffdc5099;color:#ffe87a}.account-pill{min-height:2.75rem;display:inline-flex;align-items:center;border:1px solid rgba(212,232,244,.45);background:#ffffff1f;color:#edf6fb;border-radius:999px;padding:.42rem .82rem}.content{flex:1 1 0;min-height:0;display:grid;grid-template-columns:.75fr 2fr 1.25fr;gap:1rem;padding:1rem;align-items:stretch;overflow:hidden}.leftbar{overflow-y:auto}.content>section.panel{overflow-y:auto}.basket-panel{overflow-y:auto;display:flex;flex-direction:column}.basket-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.basket-header h1{margin:0}.trash-btn{flex-shrink:0;color:var(--text-muted);background:transparent;border:none;width:2rem;height:2rem}.trash-btn:hover{color:var(--danger);background:#0000000a}.panel{background:var(--surface);border:1px solid var(--stroke);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-panel)}h1,h2{margin:0 0 .75rem;letter-spacing:.2px}h1{font-size:1.35rem}h2{font-size:1.04rem}.leftbar h2{margin-bottom:.6rem}.cat-list{display:flex;flex-direction:column;gap:.48rem}.cat-btn{min-height:44px;text-align:left;border:1px solid #d1dde8;background:var(--surface-soft);border-radius:var(--radius-sm);padding:.55rem .68rem;cursor:pointer;transition:border-color .14s ease,background-color .14s ease,transform .14s ease}.cat-btn:hover{border-color:#a9c2d4;transform:translateY(-1px)}.cat-btn.selected{background:#ddedf7;border-color:#7eaacc;font-weight:700}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem;margin-top:.2rem}.product-card{min-height:5.5rem;border:1px solid #cfdae5;border-radius:var(--radius-md);background:linear-gradient(180deg,#f9fcff,#f1f7fb);padding:.72rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;gap:.32rem;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.product-card:hover{transform:translateY(-1px);border-color:#a8c4d8;box-shadow:0 6px 14px #2d5a751f}.sales-count{font-size:.7rem;color:#6b8fa8;font-weight:500;margin-top:-.1rem}.basket-rows{flex:1 1 0;min-height:0;overflow-y:auto;margin-bottom:.5rem}.basket-row{display:grid;grid-template-columns:1fr auto auto;gap:.7rem;align-items:center;margin-bottom:.58rem;padding-bottom:.45rem;border-bottom:1px dashed #d9e3ec}.qty{display:flex;align-items:center;gap:.36rem}.qty button{width:2.25rem;height:2.25rem;border:1px solid #c5d4e0;border-radius:.56rem;background:#f4f8fc;cursor:pointer}.pay-actions{margin-top:auto;padding-top:.8rem;display:flex;flex-direction:column;gap:.4rem}.pay-btns{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.total{font-weight:800;font-size:1.02rem;white-space:nowrap;transition:color .15s ease}.checkout{width:100%;min-height:3rem;border:1px solid transparent;border-radius:.75rem;color:#fff;font-weight:700;letter-spacing:.2px;cursor:pointer;transition:filter .12s ease,transform .12s ease}.checkout:hover{filter:brightness(1.03);transform:translateY(-1px)}.checkout:disabled{opacity:.55;cursor:not-allowed;transform:none}.pay-account{background:linear-gradient(120deg,var(--accent) 0%,var(--accent-strong) 100%)}.pay-pin{background:linear-gradient(120deg,#4e6474,#344f62)}.error{color:var(--error);margin:.35rem 0 .65rem}.success{color:var(--success);margin:.35rem 0 .65rem}.muted{color:var(--ink-soft)}.modal-list{display:flex;flex-direction:column;gap:.45rem}.modal-list-item{width:100%;min-height:3.375rem;border:1px solid #d1dde8;border-radius:.625rem;background:#f6fafc;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.6rem .75rem;cursor:pointer;text-align:left}.modal-list-item small{color:var(--ink-soft);white-space:nowrap}.modal-list-item:disabled{opacity:.55;cursor:not-allowed}.account-list-wrap{display:flex;flex-direction:column;gap:.6rem;min-height:19.5rem}.account-search-row{position:sticky;top:-.9rem;margin:-.9rem -1rem .5rem;padding:.9rem 1rem .5rem;background:var(--surface);z-index:1}.account-search{width:100%;padding:.5rem .75rem;border:1px solid var(--stroke);border-radius:var(--radius-sm);background:var(--surface-soft);font-size:1rem;color:var(--ink);outline:none}.account-search:focus{border-color:var(--accent)}.account-list-empty{text-align:center;padding:1rem 0}.account-row-name{display:flex;align-items:center;gap:.45rem}.role-icon{font-size:1.1em;line-height:1}.pin-wrap{display:flex;flex-direction:column;gap:.45rem}.pinpad{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:.5rem 0}.pinpad-dots{display:flex;gap:.75rem}.pinpad-dot{width:1rem;height:1rem;border-radius:50%;border:2px solid var(--accent);background:transparent;transition:background .12s ease}.pinpad-dot.filled{background:var(--accent)}.pinpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;width:100%;max-width:15rem}.pinpad-btn{min-height:3.75rem;font-size:1.3rem;font-weight:600;border:1px solid #c8d5e1;border-radius:.75rem;background:var(--surface-soft);cursor:pointer;transition:background .1s ease,transform .1s ease}.pinpad-btn:hover{background:#ddedf7}.pinpad-btn:active{transform:scale(.95)}.pinpad-back{font-size:1.1rem}.pinpad-clear{background:#fde8e8;border-color:#e8c5c5}.pinpad-clear:hover{background:#fad0d0}.dialog-actions{display:flex;justify-content:flex-end;gap:.55rem;width:100%}.dialog-btn{min-height:2.625rem;border-radius:.625rem;border:1px solid #c8d6e1;padding:.45rem .8rem;cursor:pointer}.dialog-btn.ghost{background:#f6f9fc}.dialog-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.dialog-btn.secondary{background:#eef2f6;color:#334}.dialog-btn.secondary:disabled{background:#f0f0f0;color:#b0b0b0;border-color:#ddd;cursor:not-allowed;opacity:.6}@media(max-width:640px){.top-right{gap:.4rem}body{overflow-x:hidden}.page{height:auto;overflow:visible}.content{flex:none;overflow:visible;grid-template-columns:1fr}.leftbar,.content>section.panel{overflow-y:visible}.basket-panel{display:block;overflow-y:visible}.basket-rows{flex:none;min-height:auto;overflow-y:visible}.cat-list{flex-direction:row;flex-wrap:wrap;overflow-x:visible;gap:.5rem;padding-bottom:0}.cat-btn{white-space:nowrap;flex:0 0 auto}.product-grid{grid-template-columns:1fr 1fr;width:100%}.product-card{min-height:3.5rem;padding:.5rem;width:100%;box-sizing:border-box}}.modal-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:1rem;background:#08141e85;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overflow-y:auto}@media(hover:none)and (pointer:coarse){.modal-overlay:has(.account-search:focus){align-items:flex-start;padding-top:1rem}}.modal-card{width:min(38rem,calc(100vw - 2rem));border-radius:1rem;border:1px solid #d0dbe5;background:#fff;box-shadow:0 1.375rem 3rem #10213038;overflow:hidden}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.9rem 1rem .8rem;border-bottom:1px solid #e4ecf2}.modal-head-text h3{margin:0;font-size:1.05rem}.modal-head-text p{margin:.24rem 0 0;color:#5f7281;font-size:.9rem}.modal-close{width:2.125rem;height:2.125rem;border-radius:.5rem;border:1px solid #d3dee8;background:#f5f9fc;cursor:pointer}.modal-body{padding:.9rem 1rem;max-height:60vh;overflow:auto}.modal-footer{border-top:1px solid #e4ecf2;padding:.75rem 1rem 1rem}.modal-footer:empty{display:none}.success-summary{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem .5rem;text-align:center}.success-account{margin:0;font-size:2.25rem;font-weight:700;color:var(--ink)}.success-saldo{margin:0;font-size:1.15rem;font-weight:500}.success-bon{margin:0;font-size:.88rem}.frozen-body{display:flex;flex-direction:column;gap:.75rem;padding:.25rem 0}.frozen-amounts{border:1px solid var(--stroke);border-radius:var(--radius-sm);overflow:hidden}.frozen-row{display:flex;justify-content:space-between;padding:.5rem .75rem;font-size:.95rem;border-bottom:1px solid var(--stroke)}.frozen-row:last-child{border-bottom:none}.frozen-total{font-weight:700;background:var(--surface-soft)}.frozen-extra-btns{display:flex;gap:.5rem;justify-content:center}.frozen-extra-btns .dialog-btn{flex:1;max-width:5rem;min-height:2.5rem}.topup-extra-btns{display:flex;gap:.5rem;justify-content:center;margin-top:.5rem}.topup-extra-btns .dialog-btn{flex:1;max-width:5rem;min-height:2.5rem}.topup-extra-btns .dialog-btn.ghost{max-width:5rem}.settings-item{font-size:1rem;font-weight:600}.amount-pad{display:flex;flex-direction:column;gap:.75rem;padding:.25rem 0}.amount-display{font-size:2rem;font-weight:800;text-align:center;color:var(--ink);letter-spacing:-.02em;padding:.4rem 0}.amount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.amt-key{min-height:3.25rem;font-size:1.3rem;font-weight:600;background:var(--surface-soft);border:1px solid #c8d5e1;border-radius:.75rem;cursor:pointer;transition:background .1s ease,transform .1s ease;color:var(--ink)}.amt-key:hover:not(:disabled){background:#ddedf7}.amt-key:active:not(:disabled){background:var(--stroke);transform:scale(.95)}.amt-key.amt-clear{background:#fde8e8;border-color:#e8c5c5;color:inherit}.amt-key.amt-clear:hover:not(:disabled){background:#fad0d0}.waiting-body{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem}.waiting-body p{margin:0;font-size:1rem;color:var(--ink)}.status-label{font-size:.85rem!important}.spinner{width:2.5rem;height:2.5rem;border:3px solid var(--stroke);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tx-table{width:100%;border-collapse:collapse;font-size:.85rem}.tx-table th{text-align:left;padding:.4rem;border-bottom:2px solid var(--stroke);color:var(--text-dim);font-weight:600;position:sticky;top:0;background:var(--bg)}.tx-table td{padding:.4rem;border-bottom:1px solid var(--stroke);vertical-align:middle}.tx-table tbody tr:hover{background:var(--bg-alt)}.tx-date-cell{white-space:nowrap;color:var(--text-dim);font-size:.8rem;vertical-align:top;padding-top:.6rem}.tx-total-cell{font-weight:600;text-align:right;white-space:nowrap;vertical-align:top;padding-top:.6rem}.tx-p-name{color:var(--text)}.tx-p-qty{text-align:center;color:var(--text-dim)}.tx-p-price{text-align:right;color:var(--text-dim);white-space:nowrap}.tx-p-total{text-align:right;font-weight:500;white-space:nowrap}.settings-divider{border:none;border-top:1px solid var(--stroke);margin:1rem 0}.settings-heading{font-size:.85rem;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .45rem}.settings-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-input{display:none}.toggle-track{position:relative;width:2.5rem;height:1.375rem;background:#c8d5e1;border-radius:.6875rem;transition:background .15s ease;flex-shrink:0}.toggle-track:after{content:"";position:absolute;top:.1875rem;left:.1875rem;width:1rem;height:1rem;background:#fff;border-radius:50%;transition:transform .15s ease;box-shadow:0 1px 3px #0003}.toggle-input:checked+.toggle-track{background:var(--accent)}.toggle-input:checked+.toggle-track:after{transform:translate(1.125rem)}
