:root{--ink:#3b1e3f;--muted:#8c7390;--muted-2:#6e5672;--faint:#a893ad;--line:#3b1e3f14;--dash:#3b1e3f29;--lilac:#dcc6e0;--pink:#e0468f;--pink-soft:#fce1f0;--pink-text:#b8327a;--pink-light:#ffa8d8;--purple:#9a4fc8;--amber:#f2a93b;--amber-soft:#fdf1dc;--amber-text:#b57614;--green:#2e9e6a;--green-soft:#e3f4eb;--green-text:#1f7a50;--red-soft:#fbe3e3;--red-text:#b83232;--dessert:#f28cc0;--berat:#a47be6;--grad:linear-gradient(135deg, #f25aa3, #b65ee8);--white-70:#ffffffb3;--white-80:#fffc;--ph-d:repeating-linear-gradient(135deg, #fbddea 0 6px, #f5cfe0 6px 12px);--ph-b:repeating-linear-gradient(135deg, #ece3fa 0 6px, #e1d5f5 6px 12px);--ease:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--ink);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;touch-action:manipulation;overscroll-behavior:none;background:#fcf2f8;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}b{font-weight:700}.ms{letter-spacing:normal;text-transform:none;white-space:nowrap;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0;-webkit-user-select:none;user-select:none;font-family:Material Symbols Rounded;font-style:normal;font-weight:400;line-height:1;display:inline-block}.ms.fill{font-variation-settings:"FILL" 1}.app{zoom:var(--z,1);width:calc(var(--vw,100vw) / var(--z,1));height:calc(var(--vh,100dvh) / var(--z,1));padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:radial-gradient(55% 65% at 12% 8%,#ffc6e2 0,#ffc6e200 70%),radial-gradient(45% 55% at 92% 12%,#dcc8ff 0,#dcc8ff00 70%),radial-gradient(55% 55% at 75% 100%,#ffd9e8 0,#ffd9e800 70%),radial-gradient(40% 50% at 30% 95%,#e9d6ff 0,#e9d6ff00 70%),#fcf2f8;gap:20px;display:flex;position:relative;overflow:hidden}.hero{-webkit-backdrop-filter:blur(22px);color:#fff5fb;background:linear-gradient(145deg,#5c2460eb,#2d1238f0);box-shadow:inset 0 1px #ffffff2e,0 20px 40px #5a145a38}.hero .sub{color:#e3cbe6}.glass{-webkit-backdrop-filter:blur(22px)saturate(1.5);outline-offset:-1px;background:#ffffff85;outline:1px solid #ffffffb3;box-shadow:inset 0 1px #ffffffe6,0 10px 30px #78286e14}.rail{border-radius:28px;flex-direction:column;flex:none;align-items:center;gap:4px;width:88px;height:100%;padding:18px 0 14px;display:flex}.rail-logo{background:#fff;border-radius:20px;flex:none;width:64px;height:64px;margin-bottom:12px;display:block;overflow:hidden;box-shadow:0 6px 16px #0003}.rail-logo img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease-spring);display:block}.rail-logo:active img{transform:scale(1.08)rotate(-3deg)}.rail-item{flex-direction:column;align-items:center;gap:5px;width:84px;padding:7px 0;text-decoration:none;display:flex}.rail-item .pill{color:#d8bfdc;width:56px;height:34px;transition:background .25s, color .25s, transform .25s var(--ease-spring);border-radius:17px;place-items:center;display:grid}.rail-item:active .pill{transform:scale(.9)}.rail-item .lbl{transition:color .25s}.rail-item .pill .ms{font-size:22px}.rail-item .lbl{color:#c9aece;text-align:center;font-size:11.5px;font-weight:600;line-height:1.2}.rail-item.active .pill{background:var(--grad);color:#fff;animation:pill-in .45s var(--ease-spring);box-shadow:0 6px 16px #d646a059}.rail-item.active .pill .ms{font-variation-settings:"FILL" 1}.rail-item.active .lbl{color:#ffffff8c}.rail-settings{color:#d8bfdc;border-radius:24px;place-items:center;width:48px;height:48px;display:grid}.rail-settings .ms{font-size:24px}.title{letter-spacing:-.02em;font-size:30px;font-weight:700}.muted{color:var(--muted)}.card-title{font-size:18px;font-weight:700}.row{align-items:center;display:flex}.col{flex-direction:column;display:flex}.grow{flex:1;min-width:0;min-height:0}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nowrap{white-space:nowrap}.dashed-top{border-top:1.5px dashed var(--dash)}.scroll{scrollbar-width:thin;scrollbar-color:#3b1e3f2e transparent;overflow:auto}.pos{color:var(--green-text)}.neg{color:var(--red-text)}.ph-D{background:var(--ph-d)}.ph-B{background:var(--ph-b)}.photo{background-position:50%;background-size:cover}.hatch-dark{background:repeating-linear-gradient(135deg,#6e5672 0 2px,#0000 2px 8px);border:1.5px solid #6e5672}.hatch-light{border:1.5px solid var(--faint);background:repeating-linear-gradient(135deg, var(--faint) 0 2px, transparent 2px 6px)}.btn-primary{background:var(--grad);color:#fff;justify-content:center;align-items:center;gap:10px;font-weight:700;transition:transform .12s,filter .12s;display:flex;box-shadow:0 10px 24px #d646a04d}.btn-glass{background:var(--white-70);border:1.5px solid var(--white-80);justify-content:center;align-items:center;gap:8px;font-weight:600;transition:transform .12s;display:flex}.btn-dark{background:var(--ink);color:#fff;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:transform .12s;display:flex}.btn-primary:active,.btn-glass:active,.btn-dark:active,.tap:active{transform:scale(.98)}.btn-primary:disabled{filter:grayscale(.6);opacity:.6;box-shadow:none;cursor:default}.icon-btn{background:var(--white-70);border-radius:26px;place-items:center;width:52px;height:52px;display:grid;position:relative;box-shadow:0 1px 2px #3c28140f}.icon-btn .ms{font-size:24px}.seg{background:#ffffff73;border-radius:999px;gap:4px;padding:5px;display:flex}.seg>button{white-space:nowrap;border-radius:999px;align-items:center;gap:8px;height:46px;padding:0 20px;font-size:15px;font-weight:600;display:flex}.seg>button.on{background:var(--ink);color:#fff}.chip{white-space:nowrap;background:#ffffffa6;border-radius:999px;place-items:center;height:36px;padding:0 14px;font-size:14px;font-weight:600;display:grid}.chip.on{background:var(--ink);color:#fff}.badge{white-space:nowrap;border-radius:999px;place-items:center;height:28px;padding:0 10px;font-size:13px;font-weight:700;display:inline-grid}.status{white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.stepper{background:#ffffffa6;border-radius:26px;flex:none;align-items:center;display:flex}.stepper button{place-items:center;width:44px;height:44px;display:grid}.stepper button .ms{font-size:20px}.stepper.lg button{width:48px;height:48px}.stepper.lg button .ms{font-size:22px}.field{border:1.5px solid var(--white-80);background:#ffffff59;border-radius:16px;outline:none;align-items:center;width:100%;height:56px;padding:0 14px;font-size:20px;font-weight:700;display:flex}.field:focus{border:2px solid var(--pink);padding:0 13.5px}.field.sm{height:48px;font-size:16px;font-weight:600}.label{color:var(--muted);margin-bottom:6px;font-size:13px}.toggle{background:var(--lilac);border-radius:16px;flex:none;width:52px;height:32px;transition:background .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:12px;width:24px;height:24px;transition:left .2s;position:absolute;top:4px;left:4px}.toggle.on{background:var(--pink)}.toggle.on:after{left:24px}.zigzag{-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/22px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/22px 100%}.scrim{z-index:20;background:#2a211c73;animation:.22s ease-out fade;position:absolute;inset:0}.closing .scrim,.scrim.closing{animation:.22s ease-in forwards fade-out}.dialog-wrap{z-index:21;place-items:center;display:grid;position:absolute;inset:0}.dialog{-webkit-backdrop-filter:blur(30px)saturate(1.6);width:560px;max-height:calc(100% - 48px);animation:pop .32s var(--ease-spring);background:#ffffff8c;border-radius:32px;flex-direction:column;gap:16px;padding:28px;display:flex;overflow:auto;box-shadow:0 30px 60px #00000040}.sheet{z-index:21;-webkit-backdrop-filter:blur(30px)saturate(1.6);animation:sheet-in .42s var(--ease);background:#ffffff8c;border-radius:32px 32px 0 0;flex-direction:column;padding:12px 28px 24px;display:flex;position:absolute;bottom:0;left:124px;right:16px;box-shadow:0 -20px 50px #0000002e}.sheet .grabber{background:var(--lilac);border-radius:3px;flex:none;align-self:center;width:44px;height:5px}.sheet-head{flex:none;justify-content:space-between;align-items:center;margin:10px 0 16px;display:flex}.sheet-head .t{font-size:24px;font-weight:700}.close-btn{background:var(--white-70);border-radius:24px;place-items:center;width:48px;height:48px;display:grid}.close-btn .ms{font-size:24px}.snackbar{z-index:40;background:var(--ink);color:#fff;border-radius:18px;align-items:center;gap:16px;height:56px;padding:0 8px 0 20px;font-size:15px;font-weight:600;animation:.2s ease-out slideup;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #3b1e3f59}.snackbar button{height:44px;color:var(--pink-light);border-radius:14px;padding:0 16px;font-weight:700}@keyframes fade{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.92)translateY(12px)}}@keyframes pop-out{to{opacity:0;transform:scale(.95)translateY(8px)}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{to{transform:translateY(100%)}}@keyframes slideup{0%{opacity:0;transform:translateY(40px)}}@keyframes ring{0%{opacity:0;transform:scale(.6)}}.anim-ring{animation:.45s cubic-bezier(.2,1.4,.4,1) ring}.center-fill{text-align:center;color:var(--muted);flex:1;place-items:center;font-size:15px;display:grid}.loading{text-align:center;place-items:center;height:100vh;display:grid}@media print{body{min-width:0;overflow:visible}.rail,.no-print{display:none!important}.app{background:#fff;height:auto}}@property --p{syntax:"<number>";inherits:false;initial-value:0}.page{min-width:0;animation:page-in .5s var(--ease) backwards;flex:1;gap:20px;display:flex}@keyframes page-in{0%{opacity:0;transform:translateY(14px)scale(.995)}}.rise,.stagger>*{animation:rise .55s var(--ease) backwards}.stagger>:first-child{animation-delay:30ms}.stagger>:nth-child(2){animation-delay:80ms}.stagger>:nth-child(3){animation-delay:.13s}.stagger>:nth-child(4){animation-delay:.18s}.stagger>:nth-child(5){animation-delay:.23s}.stagger>:nth-child(6){animation-delay:.28s}.stagger>:nth-child(7){animation-delay:.32s}.stagger>:nth-child(8){animation-delay:.36s}.stagger>:nth-child(9){animation-delay:.4s}.stagger>:nth-child(n+10){animation-delay:.44s}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}.slide-in{animation:slide-in .4s var(--ease) backwards}@keyframes slide-in{0%{opacity:0;transform:translate(-12px)}}.pop-in{animation:pop-in .45s var(--ease-spring) backwards}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}}.bar{transform-origin:0;animation:grow-x .9s var(--ease) backwards;transition:width .6s var(--ease), flex-basis .6s var(--ease)}@keyframes grow-x{0%{transform:scaleX(0)}}.ring{transition:--p .9s var(--ease);animation:ring-fill 1.1s var(--ease) both}@keyframes ring-fill{0%{--p:0}}button,a,label{-webkit-user-select:none;user-select:none}button{transition:transform .18s var(--ease), background-color .25s, color .25s, box-shadow .25s, opacity .25s, border-color .25s}button:not(:disabled):active{transform:scale(.96)}.btn-primary:not(:disabled):active{transform:scale(.97);box-shadow:0 4px 12px #d646a04d}.btn-primary{position:relative;overflow:hidden}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 30%,#ffffff47 50%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)}.btn-primary:not(:disabled):hover:after,.btn-primary:not(:disabled):focus-visible:after{transition:transform .8s var(--ease);transform:translate(120%)}@media (hover:hover){.glass.lift,.lift{transition:transform .3s var(--ease), box-shadow .3s var(--ease)}.lift:hover{transform:translateY(-3px);box-shadow:inset 0 1px #ffffffe6,0 16px 36px #78286e24}}input,textarea{transition:border-color .2s,box-shadow .2s}.field:focus-within{box-shadow:0 0 0 4px #e0468f1f}.seg>button,.chip{transition:background-color .3s var(--ease), color .3s var(--ease), transform .18s var(--ease)}.sheet.closing{animation:.26s cubic-bezier(.4,0,1,1) forwards sheet-out}.dialog-wrap.closing .dialog{animation:.2s ease-in forwards pop-out}.snackbar{animation:snack-in .4s var(--ease-spring)}@keyframes snack-in{0%{opacity:0;transform:translate(-50%,24px)scale(.95)}}.receipt-in{animation:receipt .8s var(--ease) .15s backwards}@keyframes receipt{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-40px)}to{clip-path:inset(0 0 -40px)}}.check-draw{animation:pop-in .55s var(--ease-spring) .25s backwards, glow 2.4s ease-in-out .9s infinite}@keyframes glow{50%{box-shadow:0 0 0 10px #2e9e6a1f}}.draw{stroke-dasharray:1;stroke-dashoffset:0;animation:draw 1.1s var(--ease) .2s backwards}@keyframes draw{0%{stroke-dashoffset:1px}}.dot{animation:pop-in .5s var(--ease-spring) 1.1s backwards;box-shadow:0 0 0 5px #e0468f2e}.page-swap{animation:rise .45s var(--ease) backwards}.strike{transition:background-size .35s var(--ease);background:linear-gradient(currentColor,currentColor) 0 55%/0 1.5px no-repeat}.strike.on{background-size:100% 1.5px}.check-pop{animation:pop-in .35s var(--ease-spring)}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(110deg,#0000 35%,#ffffff73 50%,#0000 65%);animation:2.4s ease-in-out infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}#overlays{display:contents}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.portrait .page{scrollbar-width:none;flex-direction:column;gap:16px;padding-bottom:8px;overflow:hidden auto}.portrait .page::-webkit-scrollbar{display:none}.portrait .page>*{min-height:auto;flex:none!important;width:auto!important}.portrait .split{grid-template-columns:minmax(0,1fr)!important}.portrait .split-rows{grid-auto-rows:minmax(240px,auto);grid-template-rows:none!important}.portrait .wrap{flex-wrap:wrap;row-gap:12px}.portrait .list-panel{max-height:300px}.portrait .detail{min-height:800px}.portrait .chart{min-height:200px}.portrait .page:has(>.kasir-main){overflow:hidden}.portrait .page>.kasir-main{flex:1 1 0!important;min-height:0!important}.portrait .page>.kasir-cart{height:500px}.portrait .kasir-grid{grid-auto-rows:minmax(190px,1fr)!important}.portrait .confirm{align-content:start;gap:32px!important;padding:32px 24px!important}.portrait .sheet{max-height:92%;overflow-y:auto;height:auto!important}.portrait .sheet .split>*{min-height:auto}.portrait .keypad{grid-auto-rows:64px}
