/* moomooku member (DRAFT). Token ikut landing draft-a-label: krem, merah #DC3330, Fredoka + Nunito. Satu tema terang, sama seperti landing. */
:root{
  --red:#DC3330; --red-ink:#B3241F; --cream:#FEEDE6; --paper:#FFFDFB; --ink:#3A3A3A; --muted:#6B5F58;
  --pink:#FFC4C8; --yellow:#FDD154; --sky:#69C6E5; --line:#EAD9CF; --ok:#1E7B4A; --ok-bg:#E3F4EA; --wait:#8A5A00; --wait-bg:#FFF1C9;
  --f-display:"Fredoka","Nunito",system-ui,sans-serif; --f-body:"Nunito",system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--f-body)}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.15;text-wrap:balance;margin:0}
p{margin:0}
.wrap{max-width:960px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.draft{background:var(--ink);color:#fff;font:600 13px/1.4 var(--f-body);text-align:center;padding:8px 16px}
.tag{display:inline-block;font:700 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;background:var(--yellow);color:var(--ink);padding:5px 8px;border-radius:6px;vertical-align:middle}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:14px}
.logo{display:flex;align-items:center;gap:10px;font:600 22px/1 var(--f-display);color:var(--red);text-decoration:none}
.logo i{width:36px;height:36px;border-radius:50%;background:var(--red);display:grid;place-items:center;color:#fff;font:700 10px/1 var(--f-body);font-style:normal}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;border:0;background:var(--red);color:#fff;font:600 16px/1 var(--f-display);text-decoration:none;cursor:pointer;transition:background .2s,transform .1s}
.btn:hover{background:var(--red-ink)} .btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;color:var(--red-ink);border:2px solid var(--red)}
.btn.kecil{min-height:44px;padding:0 16px;font-size:15px}
.btn.hijau{background:var(--ok)}
:is(.btn,input,select,button,a,summary):focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.card{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:20px}
.muted{color:var(--muted)}
.eyebrow{font:700 12px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--red-ink)}
label{display:grid;gap:6px;font-weight:700}
input,select{font:400 17px/1.3 var(--f-body);min-height:48px;padding:10px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);width:100%}
.hint{font-weight:400;font-size:14px;color:var(--muted)}
.err{font-weight:700;font-size:14px;color:var(--red-ink)}
.pill{display:inline-flex;align-items:center;gap:6px;font:700 13px/1 var(--f-body);padding:6px 10px;border-radius:999px;white-space:nowrap}
.pill.lunas{background:var(--ok-bg);color:var(--ok)}
.pill.tunggu{background:var(--wait-bg);color:var(--wait)}
.pill.batal{background:#F1ECE9;color:var(--muted)}
.pill svg{width:14px;height:14px}
table{width:100%;border-collapse:collapse;font-size:15px}
th{text-align:left;font:700 12px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 8px;border-bottom:1.5px solid var(--line)}
td{padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.scroll{overflow-x:auto}
.num{font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- app (build) ---- */
.app{display:grid;gap:20px;padding-block:8px 56px;max-width:560px;margin:0 auto}
.v{display:grid;gap:18px}
.v h1{font-size:clamp(28px,7vw,36px)}
form.card{display:grid;gap:16px}
textarea{font:400 17px/1.4 var(--f-body);padding:10px 14px;border:1.5px solid var(--line);border-radius:12px;width:100%;resize:vertical;color:var(--ink)}
:is(input,textarea,select)[aria-invalid="true"]{border-color:var(--red)}
.cekbox{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:15px}
.cekbox input{width:24px;height:24px;min-height:0;flex:none;margin-top:2px;accent-color:var(--red)}
.alt{display:grid;gap:8px;background:var(--cream);border-radius:16px;padding:16px;font-size:15px}
.tautan{background:none;border:0;padding:0;color:var(--red-ink);font:700 16px/1.4 var(--f-body);text-decoration:underline;cursor:pointer;min-height:44px}
.pilih{display:grid;gap:8px}
.pilih label{display:flex;gap:10px;align-items:center;font-weight:600;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;cursor:pointer}
.pilih input{width:20px;height:20px;min-height:0;accent-color:var(--red)}
.total{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}
.total b{font:600 26px/1 var(--f-display);color:var(--red-ink)}
.note{font-size:14px;color:var(--muted)}
.row2{display:grid;gap:16px}
@media(min-width:520px){.row2{grid-template-columns:1fr 1fr}}
.pesan-umum{background:var(--wait-bg);color:var(--wait);border-radius:12px;padding:12px 14px;font-weight:700}
/* kartu stamp varian A */
.kartu{background:var(--red);color:#fff;border-radius:24px;padding:22px;display:grid;gap:16px;position:relative;overflow:hidden}
.kartu::after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.kartu h2{font-size:22px}
.kartu .sub{opacity:.92;font-size:15px}
.grid-stamp{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-width:340px}
.st{aspect-ratio:1;border-radius:50%;border:2px dashed rgba(255,255,255,.6);display:grid;place-items:center}
.st svg{width:56%;height:56%}
.st.isi{background:#fff;border:0;color:var(--red);box-shadow:0 3px 0 rgba(0,0,0,.15)}
.st.hadiah{border-color:var(--yellow);color:var(--yellow)}
.st.hadiah.isi{background:var(--yellow);color:var(--red-ink)}
.kartu .info{background:rgba(255,255,255,.14);border-radius:14px;padding:12px 14px;font-weight:700;font-size:15px}
/* riwayat */
.riw{display:grid;list-style:none;padding:0;margin:0}
.riw li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 0;border-bottom:1px solid var(--line)}
.riw .tgl{font-weight:700}
.riw .det{grid-column:1;color:var(--muted);font-size:15px}
.riw .pill{grid-row:1 / span 2;grid-column:2;align-self:center}
.riw a{color:var(--red-ink);font-weight:700;font-size:15px}
/* bayar */
.bayar-total{display:flex;justify-content:space-between;align-items:baseline;background:#fff;border:2px solid var(--red);border-radius:18px;padding:16px 18px;font-weight:700}
.bayar-total b{font:600 30px/1 var(--f-display);color:var(--red-ink)}
.va{background:#fff;border-radius:20px;padding:16px;border:1.5px solid var(--line);display:grid;gap:10px}
.va-no{font:600 24px/1.2 var(--f-display);letter-spacing:.04em}
.steps{display:grid;gap:10px;padding-left:22px;margin:0}
.v .btn.lebar{width:100%}
footer.kaki{border-top:1px solid var(--line);padding-block:20px 32px;font-size:14px;color:var(--muted)}
.kaki .wrap{display:grid;gap:4px}

/* ---- kontrol form rata di iOS Safari (feedback Calvin 10 Nov) ---- */
input,select,textarea{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;margin:0}
input[type=checkbox],input[type=radio]{-webkit-appearance:auto;appearance:auto;display:inline-block;width:auto}
input,select{min-height:48px}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B5F58' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
input[type=date]{text-align:left;line-height:1.3}
input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}
input[type=date]::-webkit-calendar-picker-indicator{opacity:.7;cursor:pointer}
label{min-width:0}
fieldset.pilih{border:0;padding:0;margin:0;min-width:0}
fieldset.pilih legend{padding:0;margin-bottom:8px;font-weight:700}

/* ---- resep harian ---- */
.resep{display:grid;gap:12px;min-width:0}
.resep-kepala{display:grid;gap:2px}
.resep-kepala h2{font-size:22px}
.resep-rail{display:grid;grid-auto-flow:column;grid-auto-columns:42%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:2px 2px 10px;-webkit-overflow-scrolling:touch}
.resep-kartu{scroll-snap-align:start;display:grid;gap:8px;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:10px;cursor:pointer;font:inherit;color:inherit;transition:transform .15s}
.resep-kartu:hover{transform:translateY(-2px)}
.resep-kartu b{font:600 16px/1.2 var(--f-display)}
.resep-kartu span{font-size:13px;font-weight:700;color:var(--muted)}
.resep-img{aspect-ratio:1;border-radius:12px;background:var(--cream);overflow:hidden;max-width:100%}
.resep-img img{width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:620px){.resep-rail{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);grid-auto-columns:auto;overflow:visible;scroll-snap-type:none}}
.resep-modal{position:fixed;inset:0;z-index:70;background:rgba(58,58,58,.5);display:flex;align-items:flex-end;justify-content:center}
.resep-sheet{position:relative;background:var(--paper);width:100%;max-width:520px;max-height:92vh;overflow-y:auto;border-radius:24px 24px 0 0;padding:20px max(16px,env(safe-area-inset-left,0px)) calc(28px + env(safe-area-inset-bottom,0px));display:grid;gap:10px}
.resep-sheet .resep-img{max-width:240px}
.resep-sheet h2{font-size:24px;padding-right:48px}
.resep-sheet h3{font-size:17px;margin-top:6px}
.resep-sheet ul,.resep-sheet ol{margin:0;padding-left:22px;display:grid;gap:6px}
.resep-tutup{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;border:0;background:var(--cream);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.resep-tutup svg{width:20px;height:20px}
@media(min-width:620px){.resep-modal{align-items:center}.resep-sheet{border-radius:24px}}
body.kunci{overflow:hidden}
.po-info{background:var(--cream);border-radius:16px;padding:14px 16px;display:grid;gap:4px;font-size:15px}
.po-info b{font:600 18px/1.2 var(--f-display)}
.po-info.tutup{background:var(--wait-bg);color:var(--wait)}
.harga-box{background:#fff;border:2px solid var(--red);border-radius:16px;padding:14px 16px;display:grid;gap:6px}
.harga-baris{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}
.harga-baris s{color:var(--muted);font-weight:700}
.harga-baris b{font:600 28px/1 var(--f-display);color:var(--red-ink)}
.pill.flash{background:var(--red);color:#fff}.pill.early{background:var(--yellow);color:var(--ink)}.pill.normal{background:#F1ECE9;color:var(--muted)}
#hHitung{font-weight:700;font-variant-numeric:tabular-nums}
.po-info.wl{background:#fff;border:1.5px solid var(--line)}
