:root{--bg:#0e141f;--surface:#161e2c;--surface-2:#1c2636;--surface-3:#232f43;--border:#263349;--border-strong:#33425d;--text:#e9edf5;--muted:#8b96ab;--faint:#4a5568;--fire-1:#f5b301;--fire-2:#f07818;--fire-3:#e8451f;--fire-shadow:#7e2b10;--green:#4ade80;--green-deep:#22c55e;--red:#f4715f;--gold:#fbbf24;--fire-grad:linear-gradient(135deg, var(--fire-1), var(--fire-2) 55%, var(--fire-3));--font-body:"Public Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--text);background-color:var(--bg);background-image:radial-gradient(700px 340px at 92% -8%,#f0781817,#0000 60%),radial-gradient(600px 320px at -6% 108%,#4ade800d,#0000 55%),radial-gradient(#ffffff07 1px,#0000 1px);background-size:auto,auto,24px 24px;min-height:100dvh}button{font-family:inherit}::selection{background:#f0781873}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app-shell{flex-direction:column;gap:22px;max-width:1280px;margin:0 auto;padding:28px clamp(16px,3.5vw,40px) 130px;display:flex}.kasir{grid-template-columns:1fr;gap:28px;display:grid}.stage{flex-direction:column;gap:24px;min-width:0;display:flex}.grain{z-index:90;pointer-events:none;opacity:.04;mix-blend-mode:overlay;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'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.topbar{border:1px solid var(--border);background:linear-gradient(160deg, var(--surface-2), var(--surface));border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;animation:.45s cubic-bezier(.2,.7,.3,1.05) backwards rise;display:flex}.brand{align-items:center;gap:14px;min-width:0;display:flex}.brand-logo{object-fit:contain;cursor:zoom-in;background:#fff;border-radius:12px;flex-shrink:0;width:52px;height:52px;padding:2px;transition:transform .15s}.brand-logo:hover{transform:scale(1.06)}.logo-zoom{cursor:zoom-out}.logo-zoom img{background:#fff;border-radius:28px;width:min(440px,88vw);padding:14px;animation:.3s cubic-bezier(.2,.9,.3,1.3) pop;box-shadow:0 40px 80px -24px #000000b3}.brand-mark{background:var(--fire-grad);color:#fff;border-radius:12px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:26px;font-weight:800;display:grid}.brand-text h1{letter-spacing:-.01em;white-space:nowrap;font-size:clamp(1.15rem,3.4vw,1.4rem);font-weight:800;line-height:1.1}.brand-text h1 em{background:var(--fire-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.brand-text h1 span{color:var(--green)}.brand-text p{color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-top:3px;font-size:11px;font-weight:600}.chip{font-family:var(--font-mono);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:7px 13px;font-size:12px;font-weight:600;display:inline-flex}.chip i{border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse}.chip-on{color:var(--green);background:#4ade8017;border:1px solid #4ade8059}.chip-on i{background:var(--green);box-shadow:0 0 8px #4ade80cc}.chip-off{color:var(--gold);background:#fbbf2417;border:1px solid #fbbf2466}.chip-off i{background:var(--gold);animation-duration:.9s;box-shadow:0 0 8px #fbbf24cc}.clock{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;margin-left:auto;font-size:13px}@media (width<=899px){.clock{display:none}}.cats{flex-wrap:wrap;gap:10px;display:flex}.cat{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:10px 20px;font-size:13.5px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.cat:hover:not(.active){color:var(--text);border-color:var(--border-strong)}.cat.active{background:var(--fire-grad);color:#fff;border-color:#0000}.offline-note{color:var(--gold);background:#fbbf2412;border:1px dashed #fbbf2473;border-radius:12px;padding:12px 16px;font-size:13.5px;font-weight:500;animation:.35s backwards rise}.search input{border:1px solid var(--border);background:var(--surface);width:100%;font-family:var(--font-body);color:var(--text);border-radius:12px;padding:16px 22px;font-size:14.5px;transition:border-color .2s,box-shadow .2s}.search input::placeholder{color:var(--muted)}.search input:focus{border-color:var(--fire-2);outline:none;box-shadow:0 0 0 3px #f078182e}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.grid-empty{text-align:center;color:var(--muted);grid-column:1/-1;padding:28px 0;font-size:14px}.card{border:1px solid var(--border);background:linear-gradient(170deg, var(--surface-2), var(--surface));cursor:pointer;text-align:center;color:var(--text);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:26px 16px 22px;transition:transform .15s,border-color .15s,box-shadow .15s;animation:.45s cubic-bezier(.2,.7,.3,1.15) backwards rise;display:flex;position:relative}.card:hover:not(:disabled){border-color:hsl(var(--hue) 60% 45%);box-shadow:0 12px 26px -14px hsl(var(--hue) 70% 45% / .5);transform:translateY(-3px)}.card:active:not(:disabled){transform:scale(.96)}.card:disabled{cursor:default}.card-out{opacity:.45;filter:grayscale(.6)}.card-tile{background:hsl(var(--hue) 45% 17%);border:1px solid hsl(var(--hue) 50% 30%);width:58px;height:58px;color:hsl(var(--hue) 80% 68%);font-family:var(--font-mono);letter-spacing:1px;border-radius:16px;place-items:center;margin-bottom:6px;font-size:20px;font-weight:700;display:grid}.card-name{font-size:15px;font-weight:700;line-height:1.2}.card-price{font-family:var(--font-mono);color:#fff;font-size:16px;font-weight:700}.card-price:before{content:"Rp ";color:var(--muted);font-size:11px;font-weight:500}.card-stock{color:var(--muted);font-size:11px}.card-stock.low{color:var(--gold)}.card-badge{background:var(--fire-grad);color:#fff;min-width:24px;height:24px;font-family:var(--font-mono);border-radius:999px;place-items:center;padding:0 7px;font-size:12.5px;font-weight:700;animation:.25s cubic-bezier(.2,.9,.3,1.4) pop;display:grid;position:absolute;top:9px;right:9px}.receipt{z-index:40}.receipt-body{background:linear-gradient(170deg, var(--surface-2), var(--surface));border:1px solid var(--border-strong);border-radius:20px;padding:30px 28px;box-shadow:0 24px 48px -20px #0000008c}.r-head{text-align:center}.r-head h2{font-family:var(--font-mono);letter-spacing:4px;color:#fff;font-size:15px;font-weight:700}.r-head p{letter-spacing:4px;color:var(--muted);margin-top:3px;font-size:10px;font-weight:600}.r-head .r-tag{letter-spacing:1px;text-transform:none;color:var(--muted);opacity:.8;margin-top:4px;font-size:10px}.r-rule{border-top:1px dashed var(--border-strong);margin:18px 0}.r-meta{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;font-size:12px;font-weight:500;display:flex}.r-meta span:first-child{color:var(--gold)}.r-empty{text-align:center;color:var(--muted);padding:18px 0;font-size:13px;line-height:1.8}.r-items{list-style:none}.r-items li{margin-bottom:18px}.r-items li:last-child{margin-bottom:0}.r-line1{justify-content:space-between;gap:10px;font-size:14px;font-weight:600;display:flex}.r-line1 span:last-child{font-family:var(--font-mono);color:#fff}.r-name{letter-spacing:.2px}.r-line2{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;align-items:center;margin-top:8px;font-size:12px;display:flex}.r-qty{align-items:center;gap:10px;display:inline-flex}.r-qty b{text-align:center;min-width:18px;color:var(--text);font-size:13px}.r-qty button{border:1px solid var(--border-strong);background:var(--surface-3);width:28px;height:28px;color:var(--text);cursor:pointer;border-radius:9px;font-size:16px;line-height:1;transition:background .12s,border-color .12s,transform .12s}.r-qty button:hover:not(:disabled){border-color:var(--fire-2);color:var(--fire-2)}.r-qty button:active:not(:disabled){transform:scale(.9)}.r-qty button:disabled{opacity:.3;cursor:default}.r-mods{color:var(--muted);margin:2px 0;font-size:11.5px;line-height:1.4}.mod-card{width:min(460px,100%)}.mod-group{margin-bottom:16px}.mod-group-head{align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.mod-tag{letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.mod-opts{flex-direction:column;gap:8px;display:flex}.mod-opt{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:13.5px;transition:border-color .15s,background .15s;display:flex}.mod-opt:hover{border-color:var(--muted)}.mod-opt.active{border-color:var(--fire-2);color:var(--fire-1);background:#f0781814}.mod-opt .mono{color:var(--muted)}.mod-opt.active .mono{color:var(--fire-1)}.r-qty .r-line-del{color:var(--muted);background:0 0;border-color:#0000;margin-left:2px;font-size:17px}.r-qty .r-line-del:hover{color:var(--red);border-color:#f4715f80}.r-sub{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.r-sub b{color:var(--text);font-weight:600}.r-disc{border:1px solid var(--border-strong);background:var(--bg);border-radius:9px;align-items:center;gap:6px;padding:7px 10px;transition:border-color .2s;display:inline-flex}.r-disc:focus-within{border-color:var(--fire-2)}.r-disc em{color:var(--muted);font-size:12px;font-style:normal}.r-disc input{width:96px;font-family:var(--font-mono);color:var(--text);text-align:right;background:0 0;border:0;outline:0;font-size:14px;font-weight:600}.r-disc input::placeholder{color:var(--faint)}.pm{gap:8px;margin:2px 0 18px;display:flex}.pm button{border:1px solid var(--border-strong);background:var(--surface-3);color:var(--text);font-family:var(--font-mono);letter-spacing:1px;cursor:pointer;border-radius:10px;flex:1;padding:11px 8px;font-size:12px;font-weight:700}.pm button.active{color:var(--green);background:#4ade8014;border-color:#4ade8080}.pm button:disabled{opacity:.35;cursor:not-allowed}.pay-box{text-align:center;border:1px dashed var(--border-strong);border-radius:12px;margin-bottom:14px;padding:14px}.pay-qris{background:#fff;border-radius:10px;width:min(220px,60vw);padding:8px}.pay-hint{color:var(--muted);margin-top:8px;font-size:12.5px}.pay-hint b{color:var(--text)}.pay-acct{font-family:var(--font-mono);color:var(--text);margin:6px 0;font-size:15px;font-weight:700}.proof{margin-bottom:16px}.proof-label{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.proof-actions,.proof-preview{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.proof-btn{border:1px solid var(--border-strong);background:var(--surface-3);color:var(--text);cursor:pointer;border-radius:10px;padding:11px 18px;font-size:13px;font-weight:600;display:inline-block}.proof-btn:hover{border-color:var(--fire-2);color:var(--fire-2)}.proof-btn input{display:none}.proof-preview img{object-fit:cover;border:1px solid var(--border-strong);border-radius:10px;width:72px;height:72px}.qris-box{align-items:center;gap:12px;display:flex}.qris-box img{background:#fff;border-radius:10px;width:120px;padding:6px}.method-list{flex-direction:column;gap:8px;margin-top:10px;list-style:none;display:flex}.method-list li{padding-left:18px;font-size:13px;position:relative}.method-list li:before{content:"●";position:absolute;left:0}.method-list li.on{color:var(--text)}.method-list li.on:before{color:var(--green)}.method-list li.off,.method-list li.off:before{color:var(--muted)}.mth{font-family:var(--font-mono);color:var(--muted);font-size:11px;font-weight:700}.proof-link{color:var(--fire-1);margin-left:8px;font-size:11px;text-decoration:underline}.r-actions{gap:10px;display:flex}.r-actions .r-save{flex:1;width:auto}.r-clear{border:1px solid var(--border-strong);color:var(--muted);letter-spacing:.8px;cursor:pointer;background:0 0;border-radius:13px;padding:18px;font-size:12.5px;font-weight:700;transition:color .15s,border-color .15s}.r-clear:hover:not(:disabled){color:var(--red);border-color:#f4715f80}.r-clear:disabled{opacity:.35;cursor:default}.r-total{justify-content:space-between;align-items:baseline;margin:8px 0 22px;display:flex}.r-total span:first-child{letter-spacing:2.5px;color:var(--muted);font-size:12px;font-weight:700}.r-total span:last-child{font-family:var(--font-mono);color:#fff;font-size:26px;font-weight:800}.r-pay label{letter-spacing:2.5px;color:var(--muted);font-size:11px;font-weight:700}.r-input{border:1px solid var(--border-strong);background:var(--bg);border-radius:12px;align-items:center;gap:8px;margin:10px 0 12px;padding:14px 16px;transition:border-color .2s,box-shadow .2s;display:flex}.r-input:focus-within{border-color:var(--fire-2);box-shadow:0 0 0 3px #f078182e}.r-input span{color:var(--muted);font-family:var(--font-mono);font-size:14px}.r-input input{width:100%;font-family:var(--font-mono);color:#fff;background:0 0;border:0;outline:0;font-size:21px;font-weight:700}.r-input input::placeholder{color:var(--faint)}.r-quick{flex-wrap:wrap;gap:10px;margin-bottom:22px;display:flex}.r-quick button{border:1px solid var(--border-strong);background:var(--surface-3);font-family:var(--font-mono);color:var(--text);cursor:pointer;border-radius:9px;padding:10px 15px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s,transform .1s}.r-quick button:first-child{color:var(--gold);background:#fbbf2414;border-color:#fbbf2480}.r-quick button:hover:not(:disabled){border-color:var(--fire-2);color:var(--fire-2)}.r-quick button:active:not(:disabled){transform:scale(.94)}.r-quick button:disabled{opacity:.35;cursor:default}.r-change{color:var(--green);background:#4ade8014;border:1px solid #4ade8040;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:22px;padding:16px 18px;display:flex}.r-change span:first-child{letter-spacing:2.5px;font-size:11px;font-weight:700}.r-change span:last-child{font-family:var(--font-mono);font-size:23px;font-weight:800}.r-change.minus{color:var(--red);background:#f4715f14;border-color:#f4715f4d}.r-save{background:var(--fire-grad);color:#fff;letter-spacing:.8px;cursor:pointer;border:0;border-radius:13px;width:100%;padding:18px;font-size:15.5px;font-weight:800;transition:transform .12s,box-shadow .15s,filter .15s;box-shadow:0 10px 24px -10px #e8451f8c}.r-save:hover:not(:disabled){filter:brightness(1.08)}.r-save:active:not(:disabled){transform:scale(.98)}.r-save:disabled{background:var(--surface-3);color:var(--muted);box-shadow:none;cursor:not-allowed}.paybar{z-index:25;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;font-size:13.5px;font-weight:600;animation:.4s backwards rise;display:flex;position:fixed;bottom:14px;left:14px;right:14px;box-shadow:0 16px 36px #00000080}.paybar b{font-family:var(--font-mono);color:#fff;font-size:17px}.paybar-go{background:var(--fire-grad);color:#fff;border-radius:10px;padding:9px 16px;font-size:13.5px;font-weight:800}.paybar:disabled{cursor:default}.paybar:disabled .paybar-go{background:var(--surface-3);color:var(--muted)}.sheet-backdrop{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#060a10a6;animation:.25s fade;position:fixed;inset:0}.sheet-close{color:var(--muted);font-family:var(--font-mono);letter-spacing:2px;cursor:pointer;background:0 0;border:0;margin:0 auto 10px;font-size:11px;display:block}@media (width<=767px){.receipt{transition:transform .35s cubic-bezier(.2,.8,.25,1);position:fixed;bottom:10px;left:10px;right:10px;transform:translateY(calc(100% + 40px))}.receipt.open{transform:translateY(0)}.receipt-body{max-height:88dvh;overflow-y:auto}}@media (width>=768px){.app-shell{padding-bottom:48px}.kasir{grid-template-columns:1fr 340px}.receipt{align-self:start;animation:.5s cubic-bezier(.2,.7,.3,1.05) .12s backwards slide-in;position:sticky;top:18px}.paybar,.sheet-backdrop,.sheet-close{display:none}}@media (width>=1024px){.kasir{grid-template-columns:1fr 424px}}.botnav,.more-sheet{display:none}@media (width<=720px){.nav{display:none}.topbar{border-radius:16px;gap:10px;padding:14px 16px}.topbar .user,.topbar .logout{display:none}.brand-logo,.brand-mark{width:42px;height:42px}.brand-text h1{font-size:1.15rem}.app-shell{gap:16px;padding:16px 14px 96px}.botnav{z-index:24;padding:8px 6px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);background:#161e2ceb;justify-content:space-around;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0}.botnav-item{color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:4px;padding:4px 2px;font-size:10.5px;font-weight:600;text-decoration:none;transition:color .15s;display:flex}.botnav-item svg{transition:transform .15s}.botnav-item.active{color:var(--fire-1)}.botnav-item.active svg{transform:translateY(-1px)}.botnav-item:active svg{transform:scale(.88)}.paybar{bottom:calc(74px + env(safe-area-inset-bottom))}.toast{bottom:calc(90px + env(safe-area-inset-bottom))}.receipt{bottom:calc(10px + env(safe-area-inset-bottom))}}.more-sheet{z-index:45;background:var(--surface-2);border-top:1px solid var(--border-strong);padding:12px 18px calc(24px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation:.3s cubic-bezier(.2,.8,.25,1) sheet-up;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -20px 50px #00000080}@media (width<=720px){.more-sheet{display:block}}.more-grip{background:var(--border-strong);border-radius:999px;width:40px;height:4px;margin:0 auto 14px}.more-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding:0 4px 14px;display:flex}.more-head b{margin-right:8px;font-size:15px}.more-head .clock-inline{font-family:var(--font-mono);color:var(--muted);font-size:11px}.more-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.more-tile{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px 8px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.more-tile svg{color:var(--muted)}.more-tile.active{border-color:var(--fire-2);color:var(--fire-1)}.more-tile.active svg{color:var(--fire-1)}.more-tile:active{transform:scale(.96)}.more-tile.danger,.more-tile.danger svg{color:var(--red)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.toast{z-index:70;background:var(--surface-3);width:fit-content;color:var(--green);font-family:var(--font-mono);white-space:nowrap;border:1px solid #4ade8059;border-radius:999px;margin:0 auto;padding:12px 20px;font-size:13px;animation:.3s rise;position:fixed;bottom:90px;left:0;right:0;box-shadow:0 14px 30px #00000080}.done{z-index:60;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#060a10b8;place-items:center;padding:24px;animation:.25s fade;display:grid;position:fixed;inset:0}.done-card{background:linear-gradient(170deg, var(--surface-3), var(--surface-2));border:1px solid var(--border-strong);text-align:center;border-radius:22px;width:min(400px,100%);padding:36px 30px 30px;animation:.35s cubic-bezier(.2,.9,.3,1.4) pop;box-shadow:0 40px 80px -24px #000000b3}.done-check{width:60px;height:60px;color:var(--green);background:#4ade801f;border:1px solid #4ade8073;border-radius:50%;place-items:center;margin-bottom:16px;font-size:28px;animation:.45s cubic-bezier(.2,.9,.3,1.5) .1s backwards pop;display:inline-grid}.done-card h3{color:var(--text);font-size:16.5px;font-weight:700}.done-off{color:var(--gold);background:#fbbf2414;border:1px dashed #fbbf2466;border-radius:10px;margin-top:12px;padding:9px 12px;font-size:12px}.done-label{letter-spacing:3.5px;color:var(--muted);margin-top:22px;font-size:11px;font-weight:700}.done-change{font-family:var(--font-mono);color:var(--green);margin:4px 0 10px;font-size:clamp(2.2rem,9vw,3rem);font-weight:800}.done-detail{font-family:var(--font-mono);color:var(--muted);margin-bottom:26px;font-size:12.5px}.done-btn{background:var(--fire-grad);color:#fff;letter-spacing:.8px;cursor:pointer;border:0;border-radius:13px;width:100%;padding:15px;font-size:15px;font-weight:800;transition:transform .12s,filter .15s;box-shadow:0 10px 24px -10px #e8451f8c}.done-btn:hover{filter:brightness(1.08)}.done-btn:active{transform:scale(.98)}.nav{flex-wrap:wrap;gap:8px;display:flex}.nav a{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:10px 24px;font-size:13.5px;font-weight:700;text-decoration:none;transition:color .15s,border-color .15s,background .15s}.nav a:hover:not(.active){color:var(--text);border-color:var(--border-strong)}.nav a.active{background:var(--fire-grad);color:#fff;border-color:#0000}.user{color:var(--text);white-space:nowrap;font-size:13px;font-weight:600}.logout{border:1px solid var(--border-strong);color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;padding:8px 14px;font-size:12.5px;font-weight:600;transition:color .15s,border-color .15s}.logout:hover{color:var(--red);border-color:#f4715f80}.login{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:linear-gradient(170deg, var(--surface-2), var(--surface));border:1px solid var(--border-strong);text-align:center;border-radius:22px;width:min(400px,100%);padding:40px 34px;animation:.45s cubic-bezier(.2,.7,.3,1.1) backwards rise}.login-logo{object-fit:contain;background:#fff;border-radius:20px;width:92px;height:92px;margin-bottom:16px;padding:4px}.login-mark{margin:0 auto 16px}.login-title{font-size:24px;font-weight:800}.login-title em{background:var(--fire-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.login-title span{color:var(--green)}.login-sub{color:var(--muted);margin:6px 0 26px;font-size:13.5px}.login-card form{text-align:left}.login-btn{margin-top:8px}.login-err{color:var(--red);margin:4px 0 10px;font-size:13px}.login-info{color:var(--gold);background:#fbbf2414;border:1px dashed #fbbf2466;border-radius:10px;margin-bottom:16px;padding:10px 14px;font-size:13px}.login-demo{border-top:1px dashed var(--border-strong);margin-top:24px;padding-top:18px}.login-demo p{color:var(--muted);margin-bottom:10px;font-size:12px}.login-demo div{justify-content:center;gap:10px;display:flex}.login-demo button{border:1px solid var(--border-strong);background:var(--surface-3);color:var(--text);cursor:pointer;border-radius:999px;padding:9px 22px;font-size:13px;font-weight:600}.login-demo button:hover{border-color:var(--fire-2);color:var(--fire-2)}.page{flex-direction:column;gap:18px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-head h2{font-size:21px;font-weight:800}.panel{background:linear-gradient(170deg, var(--surface-2), var(--surface));border:1px solid var(--border);border-radius:16px;padding:22px;overflow-x:auto}.panel-title{margin-bottom:16px;font-size:14px;font-weight:700}.btn-fire{background:var(--fire-grad);color:#fff;cursor:pointer;border:0;border-radius:11px;padding:12px 22px;font-size:14px;font-weight:800;box-shadow:0 8px 20px -10px #e8451f80}.btn-fire:hover{filter:brightness(1.08)}.btn-ghost{border:1px solid var(--border-strong);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;margin-left:6px;padding:7px 12px;font-size:12px;font-weight:600}.btn-ghost:hover{color:var(--text);border-color:var(--muted)}.tbl{border-collapse:collapse;width:100%;min-width:560px;font-size:13.5px}.tbl.tight{min-width:0}.panel::-webkit-scrollbar{height:8px}.panel::-webkit-scrollbar-track{background:0 0}.panel::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:999px}.panel::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.filters{flex-wrap:wrap;gap:10px;display:flex}.filters .search{flex:1;min-width:220px}.tbl th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.tbl th.sortable:hover{color:var(--text)}.tbl th{text-align:left;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:700}.tbl td{border-bottom:1px solid var(--border);padding:13px 12px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:#ffffff05}.tbl .r{text-align:right}.tbl .mono{font-family:var(--font-mono)}.tbl .margin{color:var(--green)}.tbl .low{color:var(--gold)}.row-off td{opacity:.45}.badge{border-radius:999px;padding:4px 11px;font-size:11px;font-weight:700;display:inline-block}.badge-on{color:var(--green);background:#4ade801a;border:1px solid #4ade8059}.badge-off{color:var(--gold);background:#fbbf2414;border:1px solid #fbbf2459}.badge-void{color:var(--red);background:#f4715f14;border:1px solid #f4715f66}.badge-warn{color:var(--gold);background:#fbbf241a;border:1px solid #fbbf2473;margin-left:8px}.row-flag td{background:#fbbf240d}.badge-owner{color:var(--fire-1);background:#f5b30114;border:1px solid #f5b30166}.badge-kasir{color:var(--muted);background:var(--surface-3);border:1px solid var(--border-strong)}.me-tag{color:var(--muted);font-size:12px;font-weight:400}.badge.pack{margin-left:8px}.card-pack{font-family:var(--font-mono);letter-spacing:1px;color:var(--fire-1);background:#f5b3011a;border:1px solid #f5b30166;border-radius:999px;padding:3px 7px;font-size:9.5px;font-weight:700;position:absolute;top:10px;left:10px}.chk{cursor:pointer;align-items:center;gap:9px;margin:4px 0 14px;font-size:13.5px;display:flex}.chk input{width:16px;height:16px;accent-color:var(--fire-2)}.comp-box{border:1px dashed var(--border-strong);border-radius:12px;flex-direction:column;gap:10px;margin-bottom:14px;padding:14px;display:flex}.comp-box select,.comp-box input{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:10px;padding:10px 12px;font-size:13.5px}.comp-row{gap:8px;display:flex}.comp-row select{flex:1;min-width:0}.comp-row input{text-align:right;width:72px;font-family:var(--font-mono)}.mod-editor{border:1px dashed var(--border-strong);border-radius:12px;margin-bottom:14px;padding:14px}.mod-editor-head{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:12.5px;font-weight:600;display:flex}.mod-edit-group{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;margin-bottom:10px;padding:12px;display:flex}.mod-edit-row{gap:8px;display:flex}.mod-edit-row input{flex:1;min-width:0}.mod-edit-flags{gap:16px;display:flex}.chk.sm{margin:0;font-size:12.5px}.mod-edit-opt{gap:8px;display:flex}.mod-edit-opt input:first-child{flex:1;min-width:0}.mod-editor input{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);border-radius:8px;padding:9px 11px;font-size:13px}.mod-price{text-align:right;width:84px;font-family:var(--font-mono)}.page-actions{align-items:center;gap:10px;display:flex}.confirm-card{text-align:left}.confirm-card h3{font-size:17px;font-weight:700}.confirm-sub{color:var(--muted);margin:8px 0 6px;font-size:13.5px}.confirm-card .f-actions{margin-top:22px}.btn-danger{color:#fff;letter-spacing:.8px;cursor:pointer;background:linear-gradient(135deg,#f4715f,#d8272c);border:0;border-radius:13px;flex:1;padding:15px;font-size:15px;font-weight:800;transition:transform .12s,filter .15s;box-shadow:0 10px 24px -10px #d8272c80}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.btn-danger:active:not(:disabled){transform:scale(.98)}.btn-danger:disabled{opacity:.6;cursor:default}.pager{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;font-size:12px;display:flex}.pager-group{align-items:center;gap:10px;display:flex}.range-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.range-presets{flex-wrap:wrap;gap:8px;display:flex}.range-presets .cat{padding:8px 14px;font-size:12.5px}.range-inputs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.range-inputs label{color:var(--muted);font-size:12px;font-weight:600}.faq{flex-direction:column;display:flex}.faq-item{border-bottom:1px solid var(--border)}.faq-item:last-child{border-bottom:0}.faq-q{width:100%;color:var(--text);font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 4px;font-size:14.5px;font-weight:600;display:flex}.faq-item.open .faq-q{color:var(--fire-1)}.faq-chevron{background:var(--surface-3);width:24px;height:24px;color:var(--muted);border-radius:8px;flex-shrink:0;place-items:center;font-size:16px;display:grid}.faq-a{padding:0 4px 16px}.faq-a p{color:var(--muted);margin-bottom:8px;font-size:13.5px;line-height:1.65}.faq-a p:last-child{margin-bottom:0}.faq-foot{text-align:center;color:var(--muted);padding:8px 0 4px;font-size:12.5px}.dz-row{flex-wrap:wrap;gap:10px;display:flex}.danger-zone{border-color:#f4715f4d}.dz-btn{width:auto;padding:12px 22px}.dz-choice{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.dz-opt{border:1px solid var(--border-strong);cursor:pointer;border-radius:12px;gap:12px;padding:14px;transition:border-color .15s,background .15s;display:flex}.dz-opt.active{border-color:var(--fire-2);background:#f078180f}.dz-opt input{accent-color:var(--fire-2);margin-top:3px}.dz-opt b{margin-bottom:3px;font-size:14px;display:block}.dz-opt span{color:var(--muted);font-size:12.5px;line-height:1.4}.dz-warn{margin:4px 0 16px}.receipt-preview{font-family:var(--font-mono);color:var(--text);background:var(--bg);border:1px dashed var(--border-strong);border-radius:12px;max-width:300px;padding:18px;font-size:12px}.receipt-preview .rp-name{text-align:center;letter-spacing:2px;font-size:14px;font-weight:700}.receipt-preview .rp-center{text-align:center;color:var(--muted);margin-top:2px}.receipt-preview .rp-rule{border-top:1px dashed var(--border-strong);margin:10px 0}.receipt-preview .rp-line{justify-content:space-between;gap:10px;display:flex}.receipt-preview .rp-item{margin-bottom:2px}.receipt-preview .rp-total{color:#fff;font-weight:700}.kas-form{flex-direction:column;gap:14px;max-width:420px;display:flex}.kas-selisih{border-radius:12px;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:700;display:flex}.kas-selisih span:first-child{letter-spacing:2.5px;font-size:11px}.kas-selisih span:last-child{font-family:var(--font-mono);font-size:20px}.kas-selisih.ok{color:var(--green);background:#4ade801a;border:1px solid #4ade804d}.kas-selisih.plus{color:var(--gold);background:#fbbf2414;border:1px solid #fbbf2459}.kas-selisih.minus{color:var(--red);background:#f4715f14;border:1px solid #f4715f59}.month-pick.sm{padding:8px 10px;font-size:12.5px}.sk{background:var(--surface-3);display:inline-block;position:relative;overflow:hidden}.sk:after{content:"";background:linear-gradient(90deg,#0000,#ffffff12,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.sk-card{pointer-events:none}.sk-card .sk{flex-shrink:0}.sk-bar{animation:1.4s ease-in-out infinite skpulse;background:var(--surface-3)!important}@keyframes shimmer{to{transform:translate(100%)}}@keyframes skpulse{50%{opacity:.45}}.form-card{text-align:left;width:min(520px,100%)}.form-card h3{margin-bottom:18px;font-size:17px;font-weight:700}.f-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=560px){.f-grid{grid-template-columns:1fr}}.f-field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.f-grid .f-field{margin-bottom:0}.f-field label{letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:600}.f-field input,.f-field select{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font-family:var(--font-body);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:10px;padding:12px 14px;font-size:14.5px;transition:border-color .2s}.f-field input:focus,.f-field select:focus{border-color:var(--fire-2);outline:none}.f-field input:disabled{opacity:.5}.f-actions{gap:10px;margin-top:20px;display:flex}.f-actions .r-save{flex:1;width:auto}.month-pick{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:var(--font-mono);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:10px;padding:11px 14px;font-size:14px}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.stat{background:linear-gradient(170deg, var(--surface-2), var(--surface));border:1px solid var(--border);border-radius:16px;padding:18px 20px}.stat span{letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:700}.stat b{font-family:var(--font-mono);color:#fff;margin-top:8px;font-size:22px;font-weight:800;display:block}.stat.green b{color:var(--green)}.stat b.red,.tbl .red{color:var(--red)}.chart{align-items:flex-end;gap:3px;height:150px;display:flex}.bar{background:linear-gradient(180deg, var(--fire-1), var(--fire-3));border-radius:3px 3px 0 0;flex:1}.bar.empty{background:var(--surface-3)}.chart-x{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.wk{gap:10px;height:180px;display:flex}.wk-col{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.wk-bar-wrap{flex:1;align-items:flex-end;display:flex}.wk-bar-wrap .bar{width:100%}.bar.today{box-shadow:0 0 14px #f078188c}.wk-label{text-align:center;font-family:var(--font-mono);color:var(--muted);font-size:11px}.split{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=899px){.split{grid-template-columns:1fr}}.rank{color:var(--muted);width:28px}a.btn-ghost{text-decoration:none;display:inline-block}button.user{cursor:pointer;background:0 0;border:0;padding:0;transition:color .15s}button.user:hover{color:var(--fire-1)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.done-actions{gap:10px;display:flex}.done-actions .done-btn{flex:1;width:auto}.done-actions .r-clear{padding:15px 16px}.print-receipt{display:none}@media print{body{background:#fff}body *{visibility:hidden}.print-receipt,.print-receipt *{visibility:visible}.print-receipt{color:#000;background:#fff;width:58mm;padding:2mm;font-family:Courier New,monospace;font-size:10.5px;line-height:1.5;display:block;position:absolute;top:0;left:0}.print-receipt h2{text-align:center;letter-spacing:2px;font-size:13px}.print-receipt .pr-center{text-align:center}.print-receipt hr{border:0;border-top:1px dashed #000;margin:6px 0}.print-receipt .pr-line{justify-content:space-between;gap:8px;display:flex}.print-receipt .pr-item{margin-bottom:3px}.print-receipt .pr-total{font-size:12px;font-weight:700}}@media (width<=720px){.nav{display:none!important}.toast{bottom:calc(90px + env(safe-area-inset-bottom))}}
