:root{--color-bg:#fff6de;--color-surface:#fff;--color-border:#f0dcaa;--color-text:#1a2142;--color-text-muted:#65698a;--color-navy:#101a3a;--color-primary:#b3171f;--color-primary-hover:#8f1118;--color-accent:#fbb82b;--color-accent-deep:#f2a516;--color-accent-soft:#ffe9a8;--color-success:#2f7d4f;--color-warning:#e08e0b;--color-danger:#c0281f;--font-display:"Lilita One", "Nunito", sans-serif;--font-body:"Nunito", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--radius:12px;--outline:2px solid var(--color-navy)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);background-image:radial-gradient(#fbb82b47 1.6px,#0000 1.7px);background-size:26px 26px;font-size:15px;line-height:1.55}h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em;color:var(--color-navy);margin:0 0 var(--space-3);font-weight:400}h1{font-size:30px}h2{font-size:21px}a{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-accent-deep);outline-offset:2px}button{font-family:var(--font-body);border-radius:var(--radius);border:var(--outline);background:var(--color-surface);color:var(--color-navy);cursor:pointer;box-shadow:0 3px 0 var(--color-navy);padding:9px 18px;font-size:14px;font-weight:800;transition:transform 60ms,box-shadow 60ms,background .15s}button:hover{background:var(--color-accent-soft)}button:active{box-shadow:0 1px 0 var(--color-navy);transform:translateY(2px)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 3px 0 var(--color-navy);transform:none}button[type=submit],.btn-primary{background:var(--color-primary);border-color:var(--color-navy);color:#fff}button[type=submit]:hover,.btn-primary:hover{background:var(--color-primary-hover)}input,select,textarea{font-family:var(--font-body);border-radius:var(--radius);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:9px 12px;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--color-navy);box-shadow:0 0 0 3px var(--color-accent);outline:none}label{color:var(--color-navy);font-size:13px;font-weight:800}table{border-collapse:collapse;width:100%}th{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-navy);text-align:left;padding:10px var(--space-2);background:var(--color-accent-soft);border-bottom:2px solid var(--color-navy);font-size:14px;font-weight:400}td{padding:var(--space-2);border-bottom:1px solid var(--color-border)}tr:hover td{background:#fff3cf}.price{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.role-badge{font-family:var(--font-mono);text-transform:uppercase;color:#fff;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.role-badge--owner,.role-badge--admin{background:var(--color-navy)}.role-badge--kasir{background:var(--color-primary)}.role-badge--dapur{background:var(--color-success)}.role-badge--gudang{background:var(--color-warning);color:var(--color-navy)}.page{max-width:1400px;margin:0 auto;padding:24px}.toolbar{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:24px;padding:20px;display:flex}.toolbar>div{flex-direction:column;gap:4px;display:flex}.table-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);overflow:auto hidden}.table-card table{margin:0}.feedback-error{color:var(--color-danger);margin:0 0 12px;font-size:13px}.feedback-success{color:var(--color-success);margin:0 0 12px;font-size:13px}.low-stock-row td{color:var(--color-danger);font-weight:600}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.order-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);padding:16px}.order-card__invoice{font-family:var(--font-mono);color:var(--color-text-muted);font-size:13px}.order-card ul{margin:8px 0;padding-left:18px;font-size:14px}.order-card button{width:100%;margin-top:8px}.status-pill{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.status-pill--pending{color:var(--color-primary);background:#fbd9d6}.status-pill--processing{background:var(--color-accent-soft);color:#8a5600}.status-pill--ready{color:var(--color-success);background:#d6eedd}.two-col{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.two-col>section{flex:1;min-width:320px}.panel{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);padding:20px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.item-builder{background:var(--color-bg);border-radius:var(--radius);border:2px dashed #e3c77a;margin-bottom:16px;padding:16px}.item-builder__label{color:var(--color-navy);margin-bottom:8px;font-size:13px;font-weight:800;display:block}.item-builder__row{flex-wrap:wrap;gap:8px;display:flex}.item-row-list{margin:0 0 16px;padding:0;list-style:none}.item-row-list li{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:14px;display:flex}.item-row-list li:last-child{border-bottom:none}.item-row-list button{padding:4px 10px;font-size:12px}.line-total{font-family:var(--font-display);justify-content:space-between;margin:12px 0;font-size:19px;display:flex}.summary-cards{flex-wrap:wrap;gap:16px;margin-bottom:32px;display:flex}.stat-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);flex:1;min-width:180px;padding:16px 20px}.stat-card__label{color:var(--color-text-muted);font-size:13px;font-weight:700}.stat-card__value{font-family:var(--font-display);color:var(--color-navy);margin-top:4px;font-size:28px}.text-danger{color:var(--color-danger);font-weight:600}.ribbon{font-family:var(--font-display);letter-spacing:.02em;color:#fff6de;background:var(--color-primary);border-top:2px solid var(--color-navy);border-bottom:2px solid var(--color-navy);clip-path:polygon(0 0,100% 0,calc(100% - 12px) 50%,100% 100%,0 100%,12px 50%);margin:0 0 16px;padding:6px 28px 7px;font-size:20px;display:inline-block;position:relative}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=700px){.table-card table,.table-card thead,.table-card tbody,.table-card th,.table-card td,.table-card tr{display:block}.table-card thead{display:none}.table-card tr{border:1px solid var(--color-border);border-radius:var(--radius);margin:10px;padding:10px 12px}.table-card td{text-align:right;border:none;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.table-card td:before{content:attr(data-label);color:var(--color-text-muted);text-transform:uppercase;text-align:left;font-size:11px;font-weight:600}.table-card{overflow-x:visible}}.topbar[data-v-fbd0b4ea]{z-index:10;background:var(--color-navy);border-bottom:4px solid var(--color-accent);box-shadow:0 4px 0 var(--color-navy);position:sticky;top:0}.topbar__row[data-v-fbd0b4ea]{justify-content:space-between;align-items:center;padding:10px 24px;display:flex}.topbar__brand[data-v-fbd0b4ea]{white-space:nowrap;align-items:center;gap:12px;text-decoration:none;display:flex}.topbar__mark[data-v-fbd0b4ea]{border:2px solid var(--color-accent);background:var(--color-accent);object-fit:cover;border-radius:50%;width:40px;height:40px}.topbar__brandtext[data-v-fbd0b4ea]{flex-direction:column;line-height:1.05;display:flex}.topbar__brandline[data-v-fbd0b4ea]{font-family:var(--font-display);letter-spacing:.04em;color:var(--color-accent);font-size:13px}.topbar__brandname[data-v-fbd0b4ea]{font-family:var(--font-display);color:#fff6de;font-size:21px}.topbar__toggle[data-v-fbd0b4ea]{box-shadow:none;cursor:pointer;color:#fff6de;background:0 0;border:none;padding:4px 8px;font-size:24px;display:none}.topbar__toggle[data-v-fbd0b4ea]:hover{background:#ffffff14}.topbar__toggle[data-v-fbd0b4ea]:active{box-shadow:none;transform:none}.topbar__nav[data-v-fbd0b4ea]{flex-wrap:wrap;gap:6px;padding:0 24px 10px;display:flex}.topbar__nav a[data-v-fbd0b4ea]{color:#d9dcee;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700;text-decoration:none}.topbar__nav a[data-v-fbd0b4ea]:hover{color:#fff;background:#ffffff1a}.topbar__nav a.router-link-exact-active[data-v-fbd0b4ea]{background:var(--color-accent);color:var(--color-navy)}.topbar__user[data-v-fbd0b4ea]{align-items:center;gap:10px;display:flex}.topbar__name[data-v-fbd0b4ea]{color:#d9dcee;font-size:13px;font-weight:700}.topbar__user button[data-v-fbd0b4ea]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-navy);padding:5px 14px;font-size:12px;box-shadow:0 3px #b97c00}.topbar__user button[data-v-fbd0b4ea]:hover{background:#ffcb56}.topbar__user button[data-v-fbd0b4ea]:active{box-shadow:0 1px #b97c00}.topbar__user--mobile[data-v-fbd0b4ea]{display:none}@media (width<=860px){.topbar__row[data-v-fbd0b4ea]{padding:8px 16px}.topbar__toggle[data-v-fbd0b4ea]{display:block}.topbar__user--desktop[data-v-fbd0b4ea]{display:none}.topbar__nav[data-v-fbd0b4ea]{flex-direction:column;gap:2px;padding:8px 16px 16px;display:none}.topbar__nav--open[data-v-fbd0b4ea]{display:flex}.topbar__nav a[data-v-fbd0b4ea]{border-radius:10px;padding:10px 12px}.topbar__user--mobile[data-v-fbd0b4ea]{border-top:2px solid #ffffff26;justify-content:space-between;margin-top:8px;padding-top:12px;display:flex}}.menu-showcase__hero[data-v-c480a6dc]{background:repeating-conic-gradient(from 0deg at 50% 45%, #ffffff29 0deg 8deg, transparent 8deg 24deg), var(--color-accent);border-bottom:4px solid var(--color-navy);flex-direction:column;align-items:center;padding:28px 16px 22px;display:flex}.menu-showcase__logo[data-v-c480a6dc]{filter:drop-shadow(0 5px #101a3a40);width:min(300px,70vw);height:auto;animation:.5s cubic-bezier(.2,1.4,.4,1) both logo-pop-c480a6dc}@keyframes logo-pop-c480a6dc{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.menu-showcase__tagline[data-v-c480a6dc]{font-family:var(--font-display);color:var(--color-navy);margin:12px 0 0;font-size:22px}.menu-showcase__group[data-v-c480a6dc]{margin-bottom:36px}.menu-showcase__grid[data-v-c480a6dc]{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:20px;display:grid}.menu-tile[data-v-c480a6dc]{background:var(--color-surface);border:var(--outline);box-shadow:0 4px 0 var(--color-navy);border-radius:16px;transition:transform .12s,box-shadow .12s;overflow:hidden}.menu-tile[data-v-c480a6dc]:hover{box-shadow:0 6px 0 var(--color-navy);transform:translateY(-2px)}.menu-tile__image[data-v-c480a6dc]{aspect-ratio:4/3;background:var(--color-accent-soft);border-bottom:var(--outline);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.menu-tile__image img[data-v-c480a6dc]{object-fit:cover;width:100%;height:100%}.menu-tile__placeholder[data-v-c480a6dc]{font-size:44px}.menu-tile__badge[data-v-c480a6dc]{background:var(--color-primary);color:#fff;border:2px solid var(--color-navy);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800;position:absolute;top:8px;right:8px}.menu-tile__body[data-v-c480a6dc]{padding:12px 14px 14px}.menu-tile__name[data-v-c480a6dc]{color:var(--color-navy);margin-bottom:2px;font-weight:800}.menu-tile__price[data-v-c480a6dc]{color:var(--color-primary);font-size:15px;font-weight:600}@media (prefers-reduced-motion:reduce){.menu-showcase__logo[data-v-c480a6dc]{animation:none}.menu-tile[data-v-c480a6dc]{transition:none}}.login[data-v-12b6ef65]{grid-template-columns:minmax(320px,1.1fr) minmax(320px,1fr);min-height:100vh;display:grid}.login__hero[data-v-12b6ef65]{background:repeating-conic-gradient(from 0deg at 50% 50%, #ffffff29 0deg 8deg, transparent 8deg 24deg), var(--color-accent);border-right:4px solid var(--color-navy);justify-content:center;align-items:center;padding:32px;display:flex}.login__logo[data-v-12b6ef65]{filter:drop-shadow(0 6px #101a3a40);width:min(440px,100%);height:auto;animation:.5s cubic-bezier(.2,1.4,.4,1) both logo-pop-12b6ef65}@keyframes logo-pop-12b6ef65{0%{opacity:0;transform:scale(.88)rotate(-2deg)}to{opacity:1;transform:none}}.login__panel[data-v-12b6ef65]{justify-content:center;align-items:center;padding:32px 24px;display:flex}.login__card[data-v-12b6ef65]{background:var(--color-surface);border:var(--outline);width:100%;max-width:380px;box-shadow:0 6px 0 var(--color-navy);border-radius:18px;padding:32px 28px}.login__card h1[data-v-12b6ef65]{margin-bottom:4px}.login__tagline[data-v-12b6ef65]{color:var(--color-text-muted);margin:0 0 24px;font-size:14px}.login__form[data-v-12b6ef65]{flex-direction:column;gap:16px;display:flex}.login__form input[data-v-12b6ef65]{width:100%;margin-top:4px}.login__error[data-v-12b6ef65]{color:var(--color-danger);margin:0;font-size:13px;font-weight:700}.login__submit[data-v-12b6ef65]{width:100%;margin-top:4px;padding:12px 18px;font-size:16px}@media (width<=820px){.login[data-v-12b6ef65]{grid-template-rows:auto 1fr;grid-template-columns:1fr}.login__hero[data-v-12b6ef65]{border-right:none;border-bottom:4px solid var(--color-navy);padding:20px}.login__logo[data-v-12b6ef65]{width:190px}.login__panel[data-v-12b6ef65]{align-items:flex-start;padding-top:28px}}@media (prefers-reduced-motion:reduce){.login__logo[data-v-12b6ef65]{animation:none}}.kasir-container[data-v-d44c10a0]{max-width:100%;margin:0 auto;padding:16px}.kasir-grid[data-v-d44c10a0],.payment-focus-grid[data-v-d44c10a0]{flex-direction:column;gap:20px;display:flex}.step-card[data-v-d44c10a0]{background:var(--color-surface);border:var(--outline);max-width:480px;box-shadow:0 6px 0 var(--color-navy);border-radius:12px;margin:20px auto;padding:24px}.step-subtitle[data-v-d44c10a0]{color:var(--color-text-muted);margin-top:4px;font-size:14px}.form-group[data-v-d44c10a0]{flex-direction:column;gap:6px;display:flex}.form-control[data-v-d44c10a0]{border:1.5px solid var(--color-border);border-radius:6px;width:100%;padding:10px}.kasir__menu[data-v-d44c10a0],.payment-summary[data-v-d44c10a0]{width:100%;min-width:0}.kasir__category-group[data-v-d44c10a0]{margin-bottom:24px}.kasir__grid[data-v-d44c10a0]{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;display:grid}.order-summary-box[data-v-d44c10a0]{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:12px;padding:16px}.summary-table[data-v-d44c10a0]{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:13px}.summary-table th[data-v-d44c10a0],.summary-table td[data-v-d44c10a0]{border-bottom:1px solid var(--color-border);padding:8px 4px}.menu-card[data-v-d44c10a0]{text-align:left;border:2px solid var(--color-border);box-shadow:none;background:var(--color-surface);cursor:pointer;flex-direction:column;align-items:stretch;gap:6px;padding:0 0 10px;display:flex;overflow:hidden}.menu-card[data-v-d44c10a0]:hover{border-color:var(--color-navy);background:var(--color-accent-soft)}.menu-card__image[data-v-d44c10a0]{aspect-ratio:4/3;background:var(--color-accent-soft);justify-content:center;align-items:center;display:flex;overflow:hidden}.menu-card__image img[data-v-d44c10a0]{object-fit:cover;width:100%;height:100%}.menu-card__placeholder[data-v-d44c10a0]{font-size:28px}.menu-card__name[data-v-d44c10a0]{padding:0 8px;font-size:13px;font-weight:600}.menu-card__price[data-v-d44c10a0]{color:var(--color-text-muted);padding:0 8px;font-size:12px}.receipt[data-v-d44c10a0]{border:1.5px solid var(--color-border);border-top:4px dashed var(--color-primary);box-sizing:border-box;background:#fff;width:100%;padding:20px}.receipt__header[data-v-d44c10a0]{text-align:center;margin-bottom:16px}.receipt__brand[data-v-d44c10a0]{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-navy);font-size:20px}.receipt__brand span[data-v-d44c10a0]{color:var(--color-primary)}.receipt__meta[data-v-d44c10a0]{font-family:var(--font-mono);color:var(--color-text-muted);margin-top:2px;font-size:11px}.receipt__field[data-v-d44c10a0]{margin-bottom:8px}.receipt__field select[data-v-d44c10a0],.receipt__field input[data-v-d44c10a0]{width:100%;margin-top:4px}.receipt__divider[data-v-d44c10a0]{border-top:1px dashed var(--color-border);margin:16px 0}.receipt__divider--double[data-v-d44c10a0]{border-top:3px double var(--color-text)}.receipt__items[data-v-d44c10a0]{margin:0;padding:0;list-style:none}.receipt__empty[data-v-d44c10a0]{color:var(--color-text-muted);text-align:center;padding:16px 0;font-size:13px}.receipt__item[data-v-d44c10a0]{font-family:var(--font-mono);margin-bottom:8px;font-size:13px}.receipt__item-row[data-v-d44c10a0]{justify-content:space-between;display:flex}.receipt__item-qty[data-v-d44c10a0]{color:var(--color-text-muted);align-items:center;gap:8px;margin-top:2px;display:flex}.receipt__item-qty button[data-v-d44c10a0]{box-shadow:0 2px 0 var(--color-navy);padding:0 8px;font-size:12px;line-height:1.6}.receipt__total[data-v-d44c10a0]{font-family:var(--font-display);justify-content:space-between;margin-bottom:16px;font-size:20px;display:flex}.receipt__error[data-v-d44c10a0]{color:var(--color-danger);font-size:13px}.receipt__success[data-v-d44c10a0]{color:var(--color-success);font-size:13px}.receipt__checkout[data-v-d44c10a0]{width:100%;margin-top:8px}.receipt__change[data-v-d44c10a0]{font-family:var(--font-mono);color:var(--color-success);margin-bottom:12px;font-size:14px;font-weight:700}.receipt__change--negative[data-v-d44c10a0]{color:var(--color-danger)}.modal-overlay[data-v-d44c10a0]{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-d44c10a0]{background:var(--color-surface,#fff);text-align:center;border-radius:12px;width:90%;max-width:350px;padding:24px;box-shadow:0 8px 24px #0003}.variant-grid[data-v-d44c10a0]{gap:12px;margin-bottom:20px;display:grid}.btn-variant[data-v-d44c10a0]{border:2px solid var(--color-border);color:var(--color-text);cursor:pointer;background:0 0;border-radius:8px;padding:12px;font-weight:600;transition:all .2s}.btn-variant[data-v-d44c10a0]:hover{border-color:var(--color-navy);background:var(--color-accent-soft)}.btn-cancel[data-v-d44c10a0]{width:100%;color:var(--color-text);cursor:pointer;background:#e2e8f0;border:none;border-radius:8px;padding:12px;font-weight:700}#print-area[data-v-d44c10a0]{display:none}@media (width>=768px){.kasir-container[data-v-d44c10a0]{padding:24px}.kasir-grid[data-v-d44c10a0],.payment-focus-grid[data-v-d44c10a0]{grid-template-columns:minmax(0,1fr) 340px;align-items:flex-start;gap:24px;display:grid}.receipt[data-v-d44c10a0]{max-width:340px;position:sticky;top:24px}}@media print{body *{visibility:hidden!important}#print-area,#print-area *{visibility:visible!important}#print-area{color:#000!important;width:58mm!important;font-family:Courier New,monospace!important;font-size:11px!important;display:block!important;position:absolute!important;top:0!important;left:0!important}@page{size:58mm auto;margin:0}.print-center{text-align:center}.print-bold{font-weight:700}.print-lg{font-size:13px}.print-line{border-top:1px dashed #000;margin:4px 0}.print-row{justify-content:space-between;gap:8px;display:flex}}.promo[data-v-2220d167]{max-width:950px}.promo__hint[data-v-2220d167]{color:var(--color-text-muted);margin:-8px 0 20px;font-size:14px}.promo__name[data-v-2220d167]{width:190px}.promo__value[data-v-2220d167]{width:110px}.promo__active[data-v-2220d167]{align-items:center;gap:8px;padding-bottom:9px;display:flex}.promo__active input[data-v-2220d167]{width:18px;height:18px;accent-color:var(--color-primary);padding:0}.promo__active label[data-v-2220d167]{cursor:pointer}.promo__actions[data-v-2220d167]{gap:8px;display:flex}.promo__actions button[data-v-2220d167]{padding:4px 12px;font-size:12px}.promo__empty[data-v-2220d167]{text-align:center;color:var(--color-text-muted);padding:24px 8px}.promo__kind[data-v-2220d167]{border:2px solid var(--color-navy);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800;display:inline-block}.promo__kind--discount[data-v-2220d167]{background:var(--color-accent);color:var(--color-navy)}.promo__kind--treat[data-v-2220d167]{background:var(--color-primary);color:#fff}@media (width<=700px){.promo__name[data-v-2220d167],.promo__value[data-v-2220d167]{width:100%}.promo__actions[data-v-2220d167]{justify-content:flex-end}}
