:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#20242c;background:#f7f8fa;font-size:14px;--ink:#20242c;--muted:#687280;--dim:#737d8b;--line:#e5e9ef;--line-soft:#eef1f6;--blue:#2563eb;--blue-dark:#1d4ed8;--pale:#eff5ff;--green:#327858;--amber:#885610;--red:#ac4949;--shadow:0 1px 3px #18273c05;--shadow-lg:0 20px 80px #20304a20}*{box-sizing:border-box}html,body{height:100%}body{margin:0;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:inherit;background:none;border:0;padding:0}button,a{transition:background .12s,border-color .12s,color .12s}button:disabled{cursor:not-allowed!important;background:#eef1f5!important;border-color:#e2e7ee!important;color:#95a0ae!important;box-shadow:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a8c7ff;outline-offset:3px}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.3px}p{margin:0}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}kbd{font-size:10px;font-family:inherit;padding:2px 5px;border-radius:5px;background:#f0f3f8;color:#8b94a1;border:1px solid #e7ebf2}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.label{font-size:10.5px;font-weight:600;color:#6b7482;letter-spacing:1px;text-transform:uppercase}.no-bar::-webkit-scrollbar{width:6px}.no-bar::-webkit-scrollbar-thumb{background:#e3e8ef;border-radius:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce2ea;border-radius:8px;background:#fff;min-height:38px;padding:0 13px;font-size:13px;font-weight:500;white-space:nowrap;box-shadow:var(--shadow)}.btn:hover:not(:disabled){background:#f0f3f8;border-color:#c6d0dd}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 1px 3px #2563eb20}.btn.primary:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}.btn.ghost{border-color:transparent;background:none;box-shadow:none;color:var(--muted)}.btn.ghost:hover:not(:disabled){background:#edf2f9;color:#315991;border-color:transparent}.btn.danger{color:var(--red);background:#fff5f5;border-color:#f2dede}.btn.danger:hover:not(:disabled){background:#fdeaea;border-color:#e9cccc}.btn.lg{min-height:48px;font-size:14px;padding:0 18px}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:7px;color:#7b8795}.icon-btn:hover:not(:disabled){background:#edf2f9;color:#315991}.pill{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#637082}.pill strong{font-weight:600;color:#4d5766}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;line-height:20px;padding:1px 8px;border-radius:5px;background:#edf6f0;color:#347959;white-space:nowrap;border:0}.badge:before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}.badge.plain{background:#f1f3f7;color:#78828f}.badge.plain:before{display:none}.badge.ok{background:#edf6f0;color:#347959}.badge.warn{background:#fdf4e6;color:var(--amber)}.badge.bad{background:#fdf0f0;color:var(--red)}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:#f7f8fa}.topbar{height:68px;flex:none;display:flex;align-items:center;gap:28px;padding:0 24px;border-bottom:1px solid var(--line);background:#f7f8fa}.brand{display:flex;align-items:center;gap:11px;font-weight:650;font-size:16px;letter-spacing:-.4px}.brand-mark{width:32px;height:32px;display:grid;place-items:center;background:var(--blue);color:#fff;border-radius:9px;font-size:14px;letter-spacing:-1px;font-weight:700}.top-nav{display:flex;align-self:stretch;gap:26px;margin-left:6px}.top-nav button{display:flex;align-items:center;font-size:13px;color:#79838f;border-bottom:2px solid transparent;margin-bottom:-1px}.top-nav button:hover{color:#414a58}.top-nav button.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:500}.top-right{display:flex;align-items:center;gap:16px;margin-left:auto}.store{display:flex;gap:8px;align-items:center;font-size:12px;color:#637082}.store-id{color:#96a0ad}.top-tool{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 10px;border-radius:8px;font-size:12.5px;color:#5c6675}.top-tool:hover{background:#edf2f9;color:var(--blue-dark)}.top-tool svg.icon{width:17px;height:17px}.top-sep{width:1px;height:22px;background:var(--line)}.avatar{width:32px;height:32px;border-radius:50%;background:#e9edf7;color:#6776a1;display:grid;place-items:center;font-size:11px;font-weight:600;flex:none}.banner{flex:none;display:flex;align-items:center;gap:10px;padding:11px 24px;font-size:13px;border-bottom:1px solid}.banner.bad{background:#fff5f5;border-color:#f2dede;color:#8d4a4a}.banner.warn{background:#fff5e6;border-color:#f0dbb8;color:var(--amber)}.banner svg.icon{width:17px;height:17px}.banner .grow{flex:1}.banner .btn{min-height:30px;font-size:12px;padding:0 10px}.statusbar{height:30px;flex:none;display:flex;align-items:center;gap:18px;padding:0 24px;border-top:1px solid var(--line);background:#f7f8fa;color:#6b7482;font-size:11px}.statusbar .dot{width:7px;height:7px}.statusbar .right{margin-left:auto;display:flex;align-items:center;gap:16px}.statusbar .dev{display:inline-flex;align-items:center;gap:6px}.statusbar .dev.on .dot{background:#3f9a6b}.statusbar .dev.off .dot{background:#c3c9d2}.statusbar .dev.warn .dot{background:#d4891c}.statusbar button{font-size:11px;color:#6b7482}.statusbar button:hover{color:#4f5a68}.workspace{flex:1;min-height:0;display:flex;gap:18px;padding:20px 24px;overflow:hidden}.pane-left,.pane-right{display:flex;flex-direction:column;min-height:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.pane-left{width:42%;min-width:340px;max-width:560px;overflow-y:auto}.pane-right{flex:1;min-width:0}.block{padding:18px;border-top:1px solid var(--line-soft)}.block:first-child{border-top:0}.block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.scan-row{display:flex;gap:10px}.scan-field{position:relative;flex:1;display:flex;align-items:center;padding:0 12px 0 14px;background:#fff;border:1px solid #d9e2ef;border-radius:10px;box-shadow:var(--shadow)}.scan-field:focus-within{border-color:#8daef0;box-shadow:0 0 0 3px #2563eb0f}.scan-field>svg.icon{color:#93a0b3}.scan-field input{flex:1;min-width:0;height:54px;border:0;outline:0;background:none;padding:0 8px 0 10px;font-size:15px;color:var(--ink)}.scan-field input::placeholder{color:#8a94a2}.scan-go{width:36px;height:36px;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center;flex:none}.scan-go:hover:not(:disabled){background:var(--blue-dark)}.scan-r3{min-width:82px;height:56px;padding:0 12px;border:1px solid #dce2ea;border-radius:10px;background:#fff;color:#315991;font-size:12px;font-weight:600;box-shadow:var(--shadow);flex:none}.scan-r3:hover:not(:disabled){background:#f0f3f8}.scan-r3:disabled{opacity:.55;cursor:not-allowed}.scan-cam{width:56px;height:56px;border:1px solid #dce2ea;border-radius:10px;display:grid;place-items:center;color:#7b8795;background:#fff;box-shadow:var(--shadow);flex:none}.scan-cam:hover{background:#f0f3f8;color:#315991}.scan-tip{margin-top:10px;font-size:11px;color:#8b94a1;line-height:1.8}.rfid-strip{margin-top:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px 12px;font-size:11px;color:#8b94a1}.rfid-strip strong{color:#4f5a68;font-weight:600}.customer{display:flex;align-items:center;gap:11px;padding:13px;border:1px dashed #d6dfeb;border-radius:8px;background:#fbfcfe}.customer .who{flex:1;min-width:0}.customer .who strong{display:block;font-size:13px;font-weight:600}.customer .who span{font-size:11px;color:#8b94a0}.member-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.member-stats div{padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fcfdfe}.member-stats small{display:block;font-size:10px;color:#6b7482;margin-bottom:3px}.member-stats strong{font-size:14px;font-weight:600}.inline-form{display:flex;gap:8px}.inline-form .field-wrap{position:relative;flex:1}.inline-form .field-wrap>svg.icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#98a3b2}.inline-form input{width:100%;height:40px;padding:0 12px 0 34px;border:1px solid #d8e1ed;border-radius:8px;background:#fff;font-size:13px;color:var(--ink)}.inline-form input.plain{padding-left:12px}.inline-form input:focus{outline:0;border-color:#8daef0;box-shadow:0 0 0 3px #2563eb0f}.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:11.5px;color:#77808e}.chip:hover{border-color:#9fbaf0;background:#f7faff;color:#41597f}.chip.on{border-color:var(--blue);background:var(--pale);color:var(--blue);font-weight:500}.chip svg.icon{width:14px;height:14px}.applied{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;border:1px solid #d8e5fb;border-radius:8px;background:var(--pale);font-size:12.5px;color:#3a5c96}.applied strong{font-weight:600}.applied svg.icon{width:15px;height:15px}.spacer{flex:1;min-height:14px}.utility{padding:14px;border-top:1px solid var(--line);background:#fcfcfd;display:grid;gap:8px}.utility-row{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.util{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:68px;padding:10px 4px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#4d5766;font-size:11.5px;font-weight:500;line-height:1.25;text-align:center;box-shadow:var(--shadow)}.util:hover:not(:disabled){border-color:#9fbaf0;background:#f7faff;color:var(--blue-dark)}.util svg.icon{width:19px;height:19px;color:#8b94a1}.util:hover:not(:disabled) svg.icon{color:var(--blue)}.util:disabled{background:#fff!important;border-color:var(--line)!important;opacity:.45}.util kbd{position:absolute;top:5px;left:6px;padding:0 4px;font-size:9px;line-height:14px}.util .count{position:absolute;top:5px;right:5px;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--blue);color:#fff;font-size:10px;font-weight:600;display:grid;place-items:center}.cart-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}.cart-head h2{font-size:14px;font-weight:600;display:flex;align-items:center;gap:9px;letter-spacing:-.1px}.cart-list{flex:1;min-height:0;overflow-y:auto}.cart-row{border-bottom:1px solid var(--line-soft)}.cart-main{display:flex;align-items:center;gap:12px;padding:13px 18px}.cart-copy{flex:1;min-width:0}.cart-meta{display:flex;align-items:center;gap:7px;font-size:11px;color:#737d8b;margin-bottom:2px}.cart-copy p{font-size:13px;font-weight:500;line-height:19px;color:#303743;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-copy small{display:block;font-size:11px;line-height:17px;color:#8b94a0;margin-top:2px}.flag{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:5px;background:#f1f3f7;color:#78828f;font-size:9px;font-weight:600;letter-spacing:.3px}.flag svg.icon{width:10px;height:10px}.flag.manual{background:#fdf4e6;color:var(--amber)}.flag.gudang{background:#edf6f0;color:var(--green)}.units{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border:1px solid #e1e6ee;border-radius:7px;background:#fff;font-size:11.5px;color:#8b94a0}.units:hover{border-color:#c6d0dd;background:#f7f9fc}.units strong{font-size:13px;color:var(--ink);font-weight:600}.units svg.icon{width:13px;height:13px}.cart-total{width:100px;text-align:right;font-size:13px;font-weight:500;white-space:nowrap}.unit-list{padding:2px 18px 12px 72px;display:flex;flex-direction:column;gap:2px}.unit-line{display:flex;align-items:center;gap:8px;font-size:11px;color:#8b94a1;padding:3px 0;border-top:1px solid var(--line-soft)}.unit-line .epc{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.2px}.unit-note{font-size:10.5px;color:#98a1ad;margin-top:6px;line-height:1.6}.swatch{width:38px;height:44px;flex:none;border-radius:7px;display:grid;place-items:center}.swatch svg{width:24px;height:28px}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:50px 20px;text-align:center;color:#6b7482;font-size:13px}.empty svg.icon{width:26px;height:26px;color:#b3bcc8}.empty h3{font-size:15px;color:#4a5462;font-weight:600}.empty p{font-size:12.5px;max-width:280px;line-height:1.8}.totals{flex:none;padding:16px 18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px;background:#fff}.total-line{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#798391}.total-line.cut{color:var(--green)}.grand{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.grand span{font-size:13px;font-weight:600;color:#4a5462}.grand strong{font-size:28px;font-weight:600;letter-spacing:-.8px}.paid-list{flex:none;padding:12px 18px;border-top:1px solid var(--line);background:#fbfcfe;display:flex;flex-direction:column;gap:8px}.paid-line{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#798391}.paid-line strong{color:var(--ink)}.method-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;background:var(--pale);color:#3a5c96;font-size:11px;font-weight:500}.method-chip svg.icon{width:13px;height:13px}.action-bar{flex:none;display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--line);background:#fff}.action-bar .btn{min-height:48px}.action-bar .pay{flex:1;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-radius:8px;background:var(--blue);border:1px solid var(--blue);color:#fff;font-size:14px;font-weight:500;box-shadow:0 2px 4px #2563eb0f}.action-bar .pay:hover:not(:disabled){background:var(--blue-dark)}.action-bar .pay span{display:flex;align-items:center;gap:9px}.action-bar .pay kbd{background:#ffffff26;border-color:#fff3;color:#e8eefc}.pay-page{flex:1;min-height:0;display:flex;gap:18px;padding:20px 24px;overflow:hidden}.pay-side{width:330px;flex:none;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.pay-back{display:flex;align-items:center;gap:9px;padding:16px 18px;border-bottom:1px solid var(--line);font-size:13px;font-weight:500;color:#647185;width:100%}.pay-back:hover{color:var(--blue)}.pay-back kbd{margin-left:auto}.pay-summary{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:9px}.pay-summary .grand strong{font-size:24px}.pay-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:9px}.pay-items{display:flex;flex-direction:column;gap:7px}.pay-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:12px;color:#6d7786}.pay-item strong{color:#4a5462;font-weight:600;margin-right:2px}.recorded{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe;font-size:12px}.recorded span{display:flex;align-items:center;gap:7px;color:#5c6675}.recorded small{color:#98a1ad}.recorded svg.icon{width:15px;height:15px;color:var(--green)}.split-hint{margin-top:2px;font-size:11px;color:#98a1ad;line-height:1.6}.pay-due{padding:18px;border-top:1px solid var(--line);background:#fbfcfe}.pay-due.settled{background:#f4faf6;border-top-color:#dcecdf}.due-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.due-line span{font-size:13px;font-weight:500;color:#798391}.due-line strong{font-size:24px;font-weight:600;letter-spacing:-.6px}.due-line.rest strong{color:#b34d4d}.due-line.change strong{color:var(--green)}.denoms{margin-top:12px;display:flex;flex-direction:column;gap:4px}.denoms .label{margin-bottom:3px}.denom{display:flex;justify-content:space-between;font-size:11px;color:#8b94a1}.pay-main{flex:1;min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow-y:auto;padding:18px 22px 0}.pay-main-inner{width:100%;max-width:540px;margin:0 auto;display:flex;flex-direction:column;gap:14px;flex:1}.method-card{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.method-art{width:46px;height:46px;flex:none;border-radius:9px;background:var(--pale);color:var(--blue);display:grid;place-items:center}.method-art svg.icon{width:24px;height:24px;stroke-width:1.5}.method-card strong{display:block;font-size:13.5px;font-weight:600}.method-card p{font-size:12px;color:#8b94a1;line-height:1.7;margin-top:2px}.method-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.method{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border:1px solid #dde4ee;border-radius:9px;background:#fff;color:#768399;font-size:11.5px;font-weight:500;box-shadow:var(--shadow)}.method:hover{border-color:#9fbaf0;background:#f7faff;color:#41597f}.method svg.icon{width:22px;height:22px}.method[aria-pressed=true]{border-color:var(--blue);background:var(--pale);color:var(--blue)}.bank-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.bank-grid button{height:46px;border:1px solid #dde4ee;border-radius:9px;background:#fff;font-size:14px;font-weight:600;color:#4d5766;box-shadow:var(--shadow)}.bank-grid button:hover{border-color:#9fbaf0;background:#f7faff}.bank-grid button[aria-checked=true]{border-color:var(--blue);background:var(--pale);color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}.amount-field{position:relative}.amount-field span.rp{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:16px;color:#98a3b2}.amount-field input{width:100%;height:58px;padding:0 18px 0 50px;border:1px solid #d8e1ed;border-radius:10px;background:#fff;font-size:28px;font-weight:600;letter-spacing:-.8px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}.amount-field input:focus{outline:0;border-color:#8daef0;box-shadow:0 0 0 3px #2563eb0f}.amount-field input::-webkit-outer-spin-button,.amount-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.numpad button{height:46px;border:1px solid #dce2ea;border-radius:8px;background:#fff;font-size:18px;font-weight:500;font-variant-numeric:tabular-nums;box-shadow:var(--shadow)}.numpad button:hover{background:#f0f3f8;border-color:#c6d0dd}.numpad button.del{color:var(--red);border-color:#f2dede;background:snow}.pin-dots{display:flex;justify-content:center;gap:10px;margin:6px 0 12px}.pin-dots i{width:11px;height:11px;border-radius:50%;border:1.5px solid #c3c9d2}.pin-dots i.on{background:var(--ink);border-color:var(--ink)}.presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.presets button{height:44px;border:1px solid #dce2ea;border-radius:8px;background:#fff;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;box-shadow:var(--shadow)}.presets button:hover{background:#f0f3f8;border-color:#c6d0dd}.presets button.on{border-color:var(--blue);background:var(--pale);color:var(--blue)}.pay-done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px 20px}.pay-done h3{font-size:17px;font-weight:600}.pay-done p{font-size:13px;color:var(--muted);line-height:1.8;max-width:330px}.pay-done strong{color:var(--green);font-weight:600}.pay-cta{margin-top:auto;position:sticky;bottom:0;padding:12px 0 18px;background:#fff}.pay-cta .btn{width:100%;min-height:54px;font-size:15px;gap:10px}.field{display:block;font-size:12px;font-weight:500;color:#687383}.field>input,.field>select{display:block;width:100%;height:42px;margin-top:7px;padding:0 12px;border:1px solid #d8e1ed;border-radius:8px;background:#fff;font-size:14px;font-weight:400;color:#303b4c}.field>input:focus,.field>select:focus{outline:0;border-color:#8daef0;box-shadow:0 0 0 3px #2563eb0f}.error{font-size:12px;line-height:20px;color:#b34d4d}.error:empty{display:none}.notice{padding:12px 14px;border-radius:8px;background:#f0f6ff;color:#50709e;font-size:12px;line-height:20px}.notice.warn{background:#fff5e6;color:var(--amber)}.notice strong{color:inherit;font-weight:600}.denom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.denom-row{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.denom-row>span{font-size:13px;font-weight:600}.denom-row>strong{min-width:92px;text-align:right;font-size:12.5px;font-weight:500;color:var(--muted)}.qty{display:flex;align-items:center;border:1px solid #d8e1ed;border-radius:8px;overflow:hidden}.qty button{width:34px;height:36px;display:grid;place-items:center;color:#5c6675;background:#f7f8fa}.qty button:hover{background:#edf2f9}.qty input{width:100%;min-width:0;height:36px;border:0;border-inline:1px solid #e5e9ef;text-align:center;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.qty input:focus{outline:0;background:#f7faff}.count-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:12px;background:#f7f9fc;border:1px solid var(--line)}.count-total span{font-size:13px;font-weight:600;color:#4a5462}.count-total strong{font-size:26px;font-weight:600;letter-spacing:-.6px}.page{flex:1;min-height:0;overflow-y:auto;padding:26px 24px}.page-inner{width:100%;max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.page-head h1{font-size:26px;letter-spacing:-.8px;margin-top:5px}.page-head p{font-size:13px;color:var(--muted);margin-top:4px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{border:1px solid var(--line);border-radius:10px;padding:18px;background:#fff;box-shadow:var(--shadow)}.stat small{display:block;font-size:11px;color:#6b7482;margin-bottom:5px}.stat strong{font-size:21px;font-weight:600;letter-spacing:-.5px}.rows{display:flex;flex-direction:column;gap:8px}.row-item{display:flex;align-items:center;gap:14px;width:100%;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;box-shadow:var(--shadow)}button.row-item:hover{border-color:#9fbaf0;background:#f7faff}.row-item .grow{flex:1;min-width:0}.row-item h3{font-size:13px;font-weight:600}.row-item p{font-size:11.5px;color:#6b7482;margin-top:3px}.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.kv:last-child{border-bottom:0}dialog{border:1px solid #e0e6ef;border-radius:16px;padding:0;width:660px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);background:#fff;color:var(--ink);box-shadow:var(--shadow-lg)}dialog::backdrop{background:#eef2f7b5;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 26px 18px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:19px;letter-spacing:-.5px}.modal-head p{margin-top:4px;font-size:12.5px;color:var(--muted)}.modal-content{padding:22px 26px;overflow-y:auto;max-height:58vh;display:flex;flex-direction:column;gap:16px}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 26px;border-top:1px solid var(--line);background:#fff}.modal-foot .right{display:flex;gap:9px;margin-left:auto}.pick-list{display:flex;flex-direction:column;gap:8px;max-height:330px;overflow-y:auto}.pick{display:flex;gap:12px;align-items:center;width:100%;border:1px solid var(--line);padding:12px;border-radius:9px;background:#fff;text-align:left}.pick:hover:not(:disabled){border-color:#9fbaf0;background:#f7faff}.pick .grow{flex:1;min-width:0}.pick strong{display:block;font-size:13px;font-weight:500}.pick small{font-size:11px;color:#6b7482}.receipt-lines{display:flex;flex-direction:column;gap:10px}.receipt-line{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;font-size:12.5px;color:#5c6675}.receipt-line strong{color:var(--ink);font-weight:600}.divider{height:1px;background:var(--line);margin:4px 0}.steps{display:flex;gap:8px;flex-wrap:wrap}.steps span{font-size:12px;padding:7px 10px;background:#f4f5f7;border-radius:6px;color:#717b89}.steps span.active{background:var(--pale);color:var(--blue)}.slip{max-width:330px;margin:0 auto;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;line-height:1.8}.sheet-wrap{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:#20242c38;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet{width:min(640px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}.sheet-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.sheet-head h2{font-size:17px}.sheet-body{flex:1;min-height:0;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:14px}.sheet-foot{flex:none;display:flex;justify-content:flex-end;gap:9px;padding:14px 20px;border-top:1px solid var(--line)}.approval-what{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid #f0dbb8;border-radius:10px;background:#fffaf2}.approval-what .seal{width:44px;height:44px;flex:none}.approval-what .seal svg.icon{width:20px;height:20px}.approval-what strong{display:block;font-size:14px;font-weight:600}.approval-what p{font-size:12.5px;color:var(--muted);margin-top:2px}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:10px;background:#f1f3f6}.segmented button{height:36px;border-radius:7px;font-size:12.5px;font-weight:500;color:#6b7482}.segmented button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px #18273c14}.seal.warn{background:#fdf4e6;color:var(--amber)}.seal.brand{background:var(--pale);color:var(--blue)}.overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#eef2f7c4;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:24px}.overlay-card{width:340px;padding:30px 26px;border:1px solid #e0e6ef;border-radius:16px;background:#fff;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.seal{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#eaf5ef;color:#388264}.seal svg.icon{width:26px;height:26px;stroke-width:2}.login-card{width:380px;gap:12px;padding:28px 26px 18px}.login-card>h3{margin-bottom:2px}.login-foot{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;padding-top:12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--dim)}.login-foot span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-foot .btn{min-height:30px;padding:0 8px;font-size:12px}.login-foot .btn svg.icon{width:15px;height:15px}.overlay{overflow-y:auto}.overlay-card h3{font-size:16px;font-weight:600}.overlay-total{font-size:27px;font-weight:600;letter-spacing:-.8px}.overlay-change{width:100%;padding:13px;border-radius:9px;background:#f4faf6;border:1px solid #dcecdf}.overlay-change small{display:block;font-size:11px;color:#7d8b82;margin-bottom:2px}.overlay-change strong{font-size:21px;font-weight:600;color:var(--green);letter-spacing:-.5px}#app[data-screen=payment]~#toast{bottom:116px}#toast{position:fixed;left:50%;bottom:46px;transform:translate(-50%);z-index:80;max-width:min(460px,calc(100vw - 32px));text-align:center;padding:11px 18px;border-radius:9px;background:#20242c;color:#fff;font-size:12.5px;font-weight:500;box-shadow:0 8px 30px #20304a2e}body[data-device=tablet]{font-size:15px}body[data-device=tablet] .btn{min-height:46px;font-size:14px;padding:0 16px}body[data-device=tablet] .icon-btn{width:42px;height:42px}body[data-device=tablet] .scan-field input{height:60px;font-size:17px}body[data-device=tablet] .scan-cam{width:62px;height:62px}body[data-device=tablet] .scan-go{width:42px;height:42px}body[data-device=tablet] .pane-left{width:44%;min-width:380px;max-width:none}body[data-device=tablet] .inline-form input{height:46px}body[data-device=tablet] .chip{height:36px;padding:0 14px;font-size:13px}body[data-device=tablet] .util{padding:15px 6px;font-size:11.5px}body[data-device=tablet] .util svg.icon{width:20px;height:20px}body[data-device=tablet] .cart-main{padding:15px 18px}body[data-device=tablet] .units{height:40px;padding:0 14px}body[data-device=tablet] .cart-copy p{font-size:14.5px}body[data-device=tablet] .action-bar .btn,body[data-device=tablet] .action-bar .pay{min-height:56px;font-size:15px}body[data-device=tablet] .amount-field input{height:68px;font-size:31px}body[data-device=tablet] .numpad button{height:56px;font-size:21px}body[data-device=tablet] .presets{grid-template-columns:repeat(4,1fr)}body[data-device=tablet] .presets button{height:54px;font-size:13px}body[data-device=tablet] .pay-cta .btn{min-height:66px;font-size:17px}body[data-device=tablet] .method-card{display:none}body[data-device=tablet] .method{padding:16px 6px}body[data-device=tablet] .field>input,body[data-device=tablet] .field>select{height:48px}body[data-device=tablet] .modal-foot .btn{min-height:48px}body[data-device=tablet] dialog{width:720px}body[data-device=tablet] .action-bar kbd,body[data-device=tablet] .pay-cta kbd,body[data-device=tablet] .pay-back kbd,body[data-device=tablet] .scan-tip kbd{display:none}@media(max-height:900px){.method-card{display:none}}@media(max-width:1180px){.topbar{gap:20px;padding:0 16px}.top-nav{gap:18px}.workspace,.pay-page{gap:14px;padding:14px 16px}.pane-left{width:44%;min-width:320px}.cart-total{width:86px}.pay-side{width:290px}.hide-md{display:none!important}}@media(max-width:940px){.store{display:none}.workspace{display:block;overflow-y:auto;padding:12px}.pay-page{display:flex;flex-direction:column;overflow-y:auto;padding:12px}.pay-side{order:-1}.pane-left,.pane-right,.pay-side,.pay-main,.pay-main-inner,.pay-scroll,.pay-done,.cart-list{flex:none}.pane-left,.pane-right,.pay-main{display:block}.pane-left,.pane-right,.pay-side,.pay-main{width:auto;max-width:none;min-width:0}.pane-left,.pay-side{margin-bottom:12px}.pane-left .spacer{display:none}.cart-list,.pay-scroll{max-height:none;overflow:visible;display:block}.pay-main{padding:16px}.pay-cta{position:static;padding:14px 0 0}.action-bar{position:sticky;bottom:0}.unit-list{padding-left:18px}.hide-sm{display:none!important}.rfid-strip,.method-grid{grid-template-columns:repeat(2,1fr)}}.join-code{font-size:34px;font-weight:600;letter-spacing:4px;line-height:1.2;color:var(--ink);font-variant-numeric:tabular-nums}.join-number{font-size:34px;font-weight:600;letter-spacing:2px;line-height:1.2;color:var(--blue);font-variant-numeric:tabular-nums}.check{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink)}.check input{width:18px;height:18px;margin:0;accent-color:var(--blue)}
