/* Pasar Bawang — gaya bersama. Mobile-first. */
:root{
  --bg:#FBF7F2; --kartu:#FFFFFF; --tinta:#2B1D22; --redup:#76666B; --garis:#ECE2D9;
  --merah:#8E2F4C; --merah-tua:#6E2039; --merah-muda:#F6E6EB;
  --daun:#3E6B3A; --daun-muda:#E5EFDF; --kunyit:#B7791F; --kunyit-muda:#FBF0DC;
  --abu-muda:#F3EEE9; --bahaya:#B42318;
  --r:14px; --bayang:0 1px 2px rgba(43,29,34,.06),0 4px 16px rgba(43,29,34,.06);
  --font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tinta);font:15px/1.5 var(--font)}
a{color:var(--merah)}
h1,h2,h3{line-height:1.2;margin:0 0 .4em;letter-spacing:-.01em}
h1{font-size:clamp(28px,7vw,46px);font-weight:800}
h2{font-size:22px;font-weight:800}
h3{font-size:16px;font-weight:700}
p{margin:0 0 .8em}
.redup{color:var(--redup)}
.kecil{font-size:13px}
.wrap{max-width:1040px;margin:0 auto;padding:0 18px}

/* Tombol */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:999px;
  padding:11px 18px;font:600 15px var(--font);cursor:pointer;text-decoration:none;background:var(--merah);color:#fff;transition:.15s}
.btn:hover{background:var(--merah-tua)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.garis{background:#fff;color:var(--tinta);border-color:var(--garis)}
.btn.garis:hover{border-color:var(--tinta)}
.btn.daun{background:var(--daun)} .btn.daun:hover{background:#2f5329}
.btn.teks{background:none;color:var(--merah);padding:8px 10px}
.btn.bahaya{background:#fff;color:var(--bahaya);border-color:#F2C6C2}
.btn.kecil{padding:7px 13px;font-size:13px}
.btn.penuh{width:100%}

/* Form */
label{display:block;font-weight:600;font-size:13px;margin:12px 0 5px}
input,select,textarea{width:100%;font:15px var(--font);color:var(--tinta);background:#fff;border:1px solid var(--garis);border-radius:10px;padding:11px 12px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--merah-muda);border-color:var(--merah)}
textarea{min-height:76px;resize:vertical}
.baris{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cek{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:14px}
.cek input{width:auto;margin-top:3px}
.galat{color:var(--bahaya);font-size:13px;min-height:1.2em;margin-top:8px}
.hp{position:absolute;left:-9999px}

/* Kartu & pil */
.kartu{background:var(--kartu);border:1px solid var(--garis);border-radius:var(--r);padding:16px;box-shadow:var(--bayang)}
.pil{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--abu-muda);color:var(--redup);white-space:nowrap}
.pil.merah{background:var(--merah-muda);color:var(--merah)}
.pil.daun{background:var(--daun-muda);color:var(--daun)}
.pil.kunyit{background:var(--kunyit-muda);color:var(--kunyit)}
.verif{display:inline-flex;align-items:center;gap:3px;color:var(--daun);font-size:12px;font-weight:700}
.bintang{color:var(--kunyit);font-weight:700;font-size:13px}

.bar{height:7px;background:var(--abu-muda);border-radius:99px;overflow:hidden}
.bar>i{display:block;height:100%;background:var(--daun);border-radius:99px}

/* Toast & lembar bawah */
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(20px);background:var(--tinta);color:#fff;padding:11px 16px;border-radius:12px;
  font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:60;max-width:90vw;text-align:center}
#toast.on{opacity:1;transform:translateX(-50%)}
.lembar-latar{position:fixed;inset:0;background:rgba(43,29,34,.4);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.lembar{background:#fff;width:100%;max-width:520px;max-height:92vh;overflow:auto;border-radius:20px 20px 0 0;padding:20px 18px 28px}
@media(min-width:640px){.lembar-latar{align-items:center}.lembar{border-radius:20px}}
.lembar .kepala{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.tutup{background:none;border:0;font-size:26px;line-height:1;cursor:pointer;color:var(--redup)}

/* ---------- Animasi ringan ----------
   Hanya transform & opacity (dikerjakan GPU, tidak memicu layout ulang).
   Mati otomatis kalau pengguna minta kurangi gerak, atau HP terdeteksi lemah / hemat data (kelas .hemat di <html>). */
@keyframes naik{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes muncul{from{opacity:0}to{opacity:1}}
@keyframes lembarNaik{from{transform:translateY(100%)}to{transform:none}}
@keyframes letup{0%{transform:scale(.5)}60%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes ayun{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes apung{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes kilau{from{background-position:150% 0}to{background-position:-50% 0}}
@keyframes rayakan{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1.08)}45%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(1.05)}}
@keyframes cincin{from{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}

.anim-naik{animation:naik .45s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(var(--i,0) * 55ms)}
.saat-terlihat{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.3,1)}
.saat-terlihat.terlihat{opacity:1;transform:none}
.btn{transition:background .15s,border-color .15s,transform .12s}
.btn:active{transform:scale(.96)}
.lembar-latar{animation:muncul .2s ease both}
.lembar{animation:lembarNaik .3s cubic-bezier(.2,.8,.3,1) both}
@media(min-width:640px){.lembar{animation:naik .25s ease both}}
#toast{will-change:transform}
.bar>i{transition:width .9s cubic-bezier(.2,.7,.3,1)}
.letup{animation:letup .45s cubic-bezier(.3,1.4,.5,1)}

/* Kerangka saat memuat */
.kerangka{border-radius:var(--r);background:linear-gradient(90deg,var(--abu-muda) 30%,#fff 50%,var(--abu-muda) 70%);background-size:200% 100%;
  animation:kilau 1.3s linear infinite;height:120px}
.kerangka+.kerangka{margin-top:12px}

/* Tanda "cocok!" di tengah layar */
.rayakan{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none;z-index:70}
.rayakan div{width:110px;height:110px;border-radius:50%;background:var(--daun);display:grid;place-items:center;position:relative;
  animation:rayakan 1.1s ease both;box-shadow:0 10px 40px rgba(62,107,58,.35)}
.rayakan div::after{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid var(--daun);animation:cincin .9s ease-out .15s both}
.rayakan svg{width:54px;height:54px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rayakan b{position:absolute;top:calc(50% + 70px);font-size:16px;color:var(--tinta);animation:rayakan 1.1s ease both;white-space:nowrap}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .saat-terlihat{opacity:1;transform:none}
}
.hemat *,.hemat *::before,.hemat *::after{animation:none!important;transition:none!important}
.hemat .saat-terlihat{opacity:1;transform:none}
.hemat .kerangka{background:var(--abu-muda)}

/* Kartu iklan publik */
.iklan .iklan-atas{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.iklan-angka{font-size:22px;font-weight:800}
.iklan-meta{font-size:13px;color:var(--redup);display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:4px}
.iklan-catatan{font-size:13px;background:var(--abu-muda);border-radius:10px;padding:8px 10px;margin:10px 0 0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.iklan-bawah{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--garis);flex-wrap:wrap}
.untung{display:grid;gap:10px}
.untung div{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.untung div::before{content:"✓";flex:none;width:22px;height:22px;border-radius:50%;background:var(--daun-muda);color:var(--daun);display:grid;place-items:center;font-weight:800;font-size:12px}
.kotak-link{display:flex;gap:8px}
.kotak-link input{font-size:13px}
.atas-nav{display:flex;gap:8px;align-items:center}
.kosong{background:var(--abu-muda);border-radius:var(--r);padding:24px 18px;text-align:center;color:var(--redup)}
