:root{--h:#14a37f;--h2:#0d7a5f;--hm:#e7f7f1;--k:#f6b519;--ink:#0f1f1a;--abu:#5b6b66;--garis:#e3ebe8;--bg:#f7faf9;--r:16px}
[hidden]{display:none!important}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
.w{max-width:1120px;margin:0 auto;padding:0 20px}
.atas{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--garis)}
.atas .w{display:flex;align-items:center;justify-content:space-between;height:64px;gap:12px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:1.12rem;letter-spacing:-.01em}
.logo svg{width:34px;height:34px;flex:none}
.logo small{display:block;font-size:.68rem;font-weight:600;color:var(--abu);letter-spacing:0;margin-top:-3px}
.tbl{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;text-decoration:none;font-weight:700;border-radius:999px;padding:13px 24px;background:var(--h);color:#fff;transition:transform .15s,box-shadow .15s,background .15s;box-shadow:0 8px 22px rgba(20,163,127,.28);font-size:1rem;white-space:nowrap}
.tbl:hover{transform:translateY(-2px);background:var(--h2)}
.tbl:disabled{opacity:.6;cursor:wait;transform:none}
.tbl.kuning{background:var(--k);color:#1d1600;box-shadow:0 8px 22px rgba(246,181,25,.35)}
.tbl.putih{background:#fff;color:var(--ink);box-shadow:none;border:1.5px solid var(--garis)}
.tbl.putih:hover{background:var(--bg)}
.tbl.kecil{padding:9px 16px;font-size:.9rem}
.tbl.merah{background:#fff;color:#c0392b;border:1.5px solid #f1c7c2;box-shadow:none}
.pil{display:inline-flex;align-items:center;gap:8px;background:var(--hm);color:var(--h2);font-weight:700;font-size:.85rem;padding:6px 14px;border-radius:999px}

/* ---------- Builder ---------- */
.langkah{padding:36px 0 120px}
.langkah h1{font-size:clamp(1.6rem,4.5vw,2.3rem);letter-spacing:-.02em;line-height:1.2;margin:10px 0 6px}
.langkah .lead{color:var(--abu);margin-bottom:26px}
.galeri{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.tpl{border:1.5px solid var(--garis);border-radius:20px;overflow:hidden;background:#fff;cursor:pointer;text-align:left;padding:0;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column}
.tpl:hover,.tpl:focus-visible{transform:translateY(-4px);box-shadow:0 18px 40px rgba(15,31,26,.1);border-color:var(--h);outline:0}
.tpl .mini{height:200px;overflow:hidden;position:relative;background:var(--bg);border-bottom:1px solid var(--garis)}

.tpl .ket{padding:14px 16px 16px}
.tpl b{font-size:1.05rem;display:block}
.tpl span{color:var(--abu);font-size:.88rem}

.editor{display:grid;grid-template-columns:minmax(340px,440px) 1fr;gap:0;height:calc(100vh - 64px);height:calc(100dvh - 64px)}
.panel{overflow-y:auto;padding:22px 22px 140px;border-right:1px solid var(--garis);background:#fff}
.pratinjau{background:#e9efed;padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.pratinjau .bar{display:flex;align-items:center;gap:8px;background:#fff;border-radius:12px;padding:8px 12px;font-size:.85rem;color:var(--abu)}
.pratinjau .bar i{width:10px;height:10px;border-radius:50%;background:#e2e8e6;display:inline-block}
.pratinjau .bar .url{flex:1;background:var(--bg);border-radius:8px;padding:5px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ukuran{display:flex;gap:4px}
.ukuran button{border:0;background:var(--bg);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:.8rem;font-weight:700;color:var(--abu)}
.ukuran button.on{background:var(--hm);color:var(--h2)}
.pratinjau iframe{flex:1;width:100%;border:0;border-radius:14px;background:#fff;box-shadow:0 10px 40px rgba(15,31,26,.12);transition:max-width .25s;margin:0 auto}
.pratinjau iframe.hp{max-width:390px}

.grup{border:1px solid var(--garis);border-radius:var(--r);padding:16px;margin-bottom:14px}
.grup h3{font-size:.95rem;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.grup h3 small{font-weight:600;color:var(--abu);font-size:.78rem}
label.f{display:block;margin-bottom:12px}
label.f>span{display:block;font-size:.84rem;font-weight:700;margin-bottom:5px}
label.f>em{display:block;font-style:normal;font-size:.78rem;color:var(--abu);margin-top:4px}
.in{width:100%;border:1.5px solid var(--garis);border-radius:12px;padding:11px 13px;background:#fff;font-size:.98rem;transition:border-color .15s,box-shadow .15s}
.in:focus{outline:0;border-color:var(--h);box-shadow:0 0 0 4px rgba(20,163,127,.12)}
textarea.in{min-height:96px;resize:vertical}
.baris2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pilihan{display:flex;flex-wrap:wrap;gap:8px}
.pilihan button{width:42px;height:42px;border-radius:12px;border:1.5px solid var(--garis);background:#fff;cursor:pointer;font-size:1.25rem;display:grid;place-items:center}
.pilihan button.on{border-color:var(--h);box-shadow:0 0 0 3px rgba(20,163,127,.2)}
.pilihan .sw{border:3px solid #fff;box-shadow:0 0 0 1.5px var(--garis)}
.pilihan .sw.on{box-shadow:0 0 0 3px var(--ink)}
.pilihan input[type=color]{width:42px;height:42px;border:1.5px dashed var(--garis);border-radius:12px;padding:3px;background:#fff;cursor:pointer}
.item{border:1px solid var(--garis);border-radius:12px;padding:10px;margin-bottom:8px;background:var(--bg);display:grid;grid-template-columns:1fr 110px 34px;gap:6px}
.item .in{padding:8px 10px;font-size:.9rem}
.item .ketx{grid-column:1/3}
.item .hapus{border:0;background:#fff;border-radius:10px;cursor:pointer;color:#c0392b;font-size:1rem;grid-row:1/3;grid-column:3}
.tambah{width:100%;border:1.5px dashed var(--h);background:var(--hm);color:var(--h2);font-weight:700;border-radius:12px;padding:10px;cursor:pointer}
.aksi-bawah{position:fixed;left:0;bottom:0;z-index:15;width:440px;max-width:100%;background:#fff;border-top:1px solid var(--garis);border-right:1px solid var(--garis);padding:12px 16px;display:flex;gap:8px}
.aksi-bawah .tbl{flex:1;padding:12px 10px}
.tab-hp{display:none}
.alamat-web{display:flex;align-items:center;border:1.5px solid var(--garis);border-radius:12px;overflow:hidden;font-size:.92rem}
.alamat-web span{padding:11px 0 11px 12px;color:var(--abu);white-space:nowrap}
.alamat-web input{border:0;padding:11px 12px 11px 2px;min-width:0;flex:1;outline:0;font-weight:700}
.status{font-size:.8rem;margin-top:5px;min-height:1.2em}
.status.ok{color:var(--h2)}.status.no{color:#c0392b}

/* modal */
.modal{position:fixed;inset:0;background:rgba(10,20,17,.55);z-index:50;display:none;align-items:center;justify-content:center;padding:18px}
.modal.buka{display:flex}
.modal .kotak{background:#fff;border-radius:24px;max-width:480px;width:100%;padding:28px;text-align:center;max-height:92vh;overflow:auto;animation:naik .25s ease}
@keyframes naik{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.modal h2{font-size:1.5rem;margin:8px 0 6px;letter-spacing:-.01em}
.modal p{color:var(--abu)}
.tautan{display:flex;gap:6px;margin:18px 0 10px;border:1.5px solid var(--garis);border-radius:14px;padding:6px 6px 6px 14px;align-items:center}
.tautan a{flex:1;text-align:left;font-weight:700;color:var(--h2);word-break:break-all;font-size:.92rem;text-decoration:none}
.modal .tombol{display:grid;gap:8px;margin-top:14px}
.peringatan{background:#fff8e6;border:1px solid #f8e1a0;border-radius:14px;padding:12px 14px;text-align:left;font-size:.86rem;color:#6b5100;margin-top:16px}
.peringatan code{display:block;margin-top:6px;background:#fff;border-radius:8px;padding:6px 8px;word-break:break-all;font-size:.78rem;color:var(--ink)}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:600;font-size:.9rem;z-index:60;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.on{opacity:1}
.daftar-saya{display:grid;gap:10px;margin-top:10px}
.daftar-saya a{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--garis);border-radius:14px;padding:12px 14px;text-decoration:none;font-weight:700}
.daftar-saya a span{color:var(--abu);font-weight:500;font-size:.85rem}

@media(max-width:860px){
  .editor{display:block;height:auto}
  .panel{border:0;padding:18px 16px 150px}
  .pratinjau{display:none;position:fixed;inset:64px 0 0 0;z-index:12;padding:10px 10px 140px}
  .editor.lihat .pratinjau{display:flex}
  .editor.lihat .panel{display:none}
  .pratinjau iframe.hp{max-width:100%}
  .ukuran{display:none}
  .aksi-bawah{width:100%;border-right:0;flex-wrap:wrap}
  .tab-hp{display:flex;width:100%;background:var(--bg);border-radius:12px;padding:4px;gap:4px}
  .tab-hp button{flex:1;border:0;background:transparent;border-radius:9px;padding:8px;font-weight:700;cursor:pointer;color:var(--abu)}
  .tab-hp button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08)}
  .aksi-bawah .unduh{display:none}
}
