:root{--bg: #f7f4ee;--surface: #ffffff;--ink: #1f2328;--ink-soft: #5a6068;--line: #ded8ce;--field-line: #8a8378;--ph: #e9e4da;--ph-ink: #6f695e;--primary: #8c3f2c;--primary-ink: #ffffff;--accent: #2f6f5e;--accent-bg: #e7f1ec;--accent-ink: #1f5748;--warn-bg: #fbf0dc;--warn-ink: #7a4a00;--danger: #962718;--off-bg: #efece6;--radius: 1rem;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--touch-min: 3rem;--button-main: 3.75rem;--font-h1: 1.625rem;--font-h2: 1.25rem;--font-body: 1.125rem;--font-soft: 1rem;--font-total: 2.125rem;--max-width: 45rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-body);line-height:1.45}#root{min-height:100vh;display:flex;justify-content:center}.app{width:100%;max-width:var(--max-width);min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.appbar{display:flex;align-items:center;gap:var(--space-1);padding:.75rem 1rem;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.appbar__title{font-size:var(--font-body);font-weight:700}.appbar__back{min-height:var(--touch-min);display:inline-flex;align-items:center;background:none;border:0;padding:0 .5rem;color:var(--primary);font:inherit;font-weight:600;cursor:pointer}.content{flex:1;padding:var(--space-2);display:flex;flex-direction:column;gap:.75rem}.bottombar{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:.75rem 1rem 1.25rem;display:flex;flex-direction:column;gap:.625rem}.h1{font-size:var(--font-h1);font-weight:700;margin:0}.h2{font-size:var(--font-h2);font-weight:700;margin:0}.soft{color:var(--ink-soft);font-size:var(--font-soft)}.money{font-variant-numeric:tabular-nums;font-weight:700}.total{font-size:var(--font-total);font-weight:700;font-variant-numeric:tabular-nums}.btn{min-height:var(--button-main);border-radius:var(--radius);border:0;font:inherit;font-size:var(--font-h2);font-weight:700;display:flex;align-items:center;justify-content:center;text-align:center;padding:.5rem 1rem;cursor:pointer;color:var(--ink);background:var(--surface)}.btn--primary{background:var(--primary);color:var(--primary-ink)}.btn--ghost{background:var(--surface);border:2px solid var(--field-line)}.btn--small{min-height:var(--touch-min);font-size:var(--font-body)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible,.appbar__back:focus-visible,.tile:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.tile{min-height:5.5rem;border-radius:var(--radius);border:2px solid var(--field-line);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--font-h2);font-weight:700;display:flex;align-items:center;justify-content:center;padding:.75rem;cursor:pointer}.tile--hero{grid-column:1 / -1;min-height:6.5rem;font-size:1.5rem;background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.card{background:var(--surface);border:1px solid var(--line);border-radius:.875rem;padding:.875rem}.panel{border-radius:.75rem;padding:.75rem;font-size:var(--font-soft)}.panel--warn{background:var(--warn-bg);color:var(--warn-ink)}.panel--ok{background:var(--accent-bg);color:var(--accent-ink)}.status{display:flex;align-items:center;gap:.5rem;font-size:var(--font-soft);color:var(--ink-soft)}.dot{width:.625rem;height:.625rem;border-radius:999px;background:var(--accent);flex:0 0 auto}.dot--warn{background:#c98a1d}label{display:block;font-size:var(--font-soft);font-weight:700;margin-bottom:.25rem}input,select{width:100%;min-height:3.5rem;border:2px solid var(--field-line);border-radius:.75rem;background:var(--surface);color:var(--ink);font:inherit;font-size:var(--font-body);padding:0 .875rem}.hint{font-size:var(--font-soft);color:var(--ink-soft);margin:.25rem 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.grid-barang{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(min-width:45rem){.grid-barang{grid-template-columns:repeat(3,1fr)}}.thumb{aspect-ratio:1 / 1;background:var(--ph);border-radius:.75rem;display:flex;align-items:center;justify-content:center;color:var(--ph-ink);font-size:.875rem;text-align:center;padding:.375rem;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:contain}.prodname{font-weight:700;font-size:1.0625rem;margin-top:.5rem;line-height:1.25;color:var(--ink)}.grid-foto{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.slot-foto{aspect-ratio:1 / 1;border:2px dashed var(--field-line);border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.75rem;color:var(--ph-ink);background:var(--surface);position:relative;overflow:hidden}.slot-foto--isi{border-style:solid;border-color:var(--line)}.slot-foto img{width:100%;height:100%;object-fit:cover}.slot-foto__hapus{position:absolute;top:.25rem;right:.25rem;width:2.75rem;height:2.75rem;border-radius:999px;border:0;background:#fffffff0;color:var(--danger);font-size:1.125rem;font-weight:700;cursor:pointer}.progres{margin-top:.5rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);padding:.625rem .75rem}.progres__baris{display:flex;justify-content:space-between;gap:.5rem;font-size:var(--font-soft);font-weight:700}.progres__persen{font-variant-numeric:tabular-nums}.progres__track{margin-top:.375rem;height:.75rem;border-radius:999px;background:var(--off-bg);overflow:hidden}.progres__isi{height:100%;background:var(--primary);border-radius:999px;transition:width .12s linear}.progres--selesai .progres__isi{background:var(--accent)}.progres--gagal{background:var(--warn-bg);border-color:#e8d3ad;color:var(--warn-ink)}.baris-keranjang{background:var(--surface);border:1px solid var(--line);border-radius:.875rem;padding:.875rem}.stepper{display:flex;align-items:center;gap:.625rem}.stepper__tombol{width:3rem;height:3rem;border-radius:.75rem;border:2px solid var(--field-line);background:var(--surface);font-size:1.375rem;font-weight:700;cursor:pointer;color:var(--ink)}.stepper__nilai{min-width:3rem;text-align:center;font-size:var(--font-h2);font-weight:700;font-variant-numeric:tabular-nums}.ringkas{display:flex;justify-content:space-between;gap:.75rem;font-variant-numeric:tabular-nums}.pilihan{display:flex;flex-wrap:wrap;gap:.5rem}.pilihan__item{min-height:3rem;padding:0 .875rem;border-radius:999px;border:2px solid var(--field-line);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--font-soft);font-weight:700;cursor:pointer}.pilihan__item[aria-pressed=true]{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-ink)}.tersimpan{text-align:center}.tersimpan__cek{width:5.5rem;height:5.5rem;border-radius:999px;background:var(--accent);color:#fff;font-size:3rem;display:flex;align-items:center;justify-content:center;margin:1.5rem auto .5rem}.resi{background:#fff;border:1px dashed #b9b2a5;border-radius:.5rem;padding:.875rem;font-size:.8125rem;line-height:1.5;color:var(--ink)}.resi__judul{text-align:center;font-weight:700;font-size:.9375rem;letter-spacing:.03em;margin:0 0 .125rem}.resi__teks{margin:0}.resi__tengah{text-align:center}.resi__kecil{font-size:.75rem}.resi__garis{border:0;border-top:1px dashed #b9b2a5;margin:.375rem 0}.resi__baris{display:flex;justify-content:space-between;gap:.75rem;font-variant-numeric:tabular-nums}.resi__total{display:flex;justify-content:space-between;gap:.75rem;font-weight:700;font-size:.9375rem;font-variant-numeric:tabular-nums}.resi__barang{font-weight:700;margin:.25rem 0 0;text-transform:uppercase}
