/* ============================================================
   Warna, huruf, dan jarak. Semua halaman memakai berkas ini.
   ============================================================ */

:root{
  --kertas:#EDEFE7;
  --kertas-terang:#F8F9F3;
  --nota:#FFFDF4;
  --tinta:#15241C;
  --tinta-lembut:#4B5B51;
  --hijau:#0F6E3F;
  --hijau-tua:#0A4D2C;
  --hijau-muda:#D8E7DC;
  --jingga:#C9430F;
  --jingga-tua:#A93509;
  --merah:#A32218;
  --garis:#D1D7C7;

  --judul:"Archivo","Helvetica Neue",Arial,sans-serif;
  --badan:"Source Serif 4",Georgia,"Times New Roman",serif;

  --r:14px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

body{
  margin:0;background:var(--kertas);color:var(--tinta);
  font-family:var(--badan);font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,.font-judul{font-family:var(--judul);letter-spacing:-.02em;line-height:1.06;margin:0}
h1{font-weight:800;font-size:clamp(1.9rem,4.3vw,3rem);letter-spacing:-.035em}
h2{font-weight:700;font-size:clamp(1.75rem,3.9vw,2.8rem)}
h3{font-weight:700;font-size:1.18rem;line-height:1.25}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
a{color:inherit}
img{max-width:100%}
ul,ol{margin:0;padding:0;list-style:none}

:focus-visible{outline:3px solid var(--jingga);outline-offset:3px;border-radius:4px}

.wrap{width:min(1120px,calc(100% - 40px));margin-inline:auto}
.wrap-sempit{width:min(760px,calc(100% - 40px));margin-inline:auto}
.sec{padding:clamp(58px,8.5vw,112px) 0}
.sec-kertas{background:var(--kertas)}
.sec-terang{background:var(--kertas-terang)}
.sec-hijau{background:var(--hijau-tua);color:var(--kertas)}
.sec-hijau .lead{color:#C9DCCF}

.lead{font-size:clamp(1.05rem,1.7vw,1.24rem);color:var(--tinta-lembut);max-width:60ch}
.kepala{margin-bottom:clamp(30px,4vw,52px);text-align:center}
.kepala h2{margin-bottom:14px}
.kepala .lead{margin-inline:auto}

/* ---------- tombol ---------- */
.tbl{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--judul);font-weight:700;font-size:1rem;letter-spacing:-.01em;
  padding:15px 26px;border-radius:999px;border:2px solid transparent;
  text-decoration:none;cursor:pointer;
  transition:transform .12s ease,background .15s ease,color .15s ease;
}
.tbl:active{transform:translateY(1px)}
.tbl[disabled]{opacity:.55;cursor:not-allowed}
.tbl-utama{background:var(--jingga);color:#fff}
.tbl-utama:hover{background:var(--jingga-tua)}
.tbl-garis{border-color:currentColor;background:transparent}
.tbl-garis:hover{background:var(--tinta);color:var(--kertas);border-color:var(--tinta)}
.sec-hijau .tbl-garis:hover,.hero .tbl-garis:hover{background:var(--kertas);color:var(--hijau-tua);border-color:var(--kertas)}
.tbl-kecil{padding:9px 16px;font-size:.9rem}
/* Untuk tindakan yang tidak bisa dibatalkan: menghapus, mengembalikan ke
   isi bawaan. Warnanya berbeda dari tombol utama supaya jempol yang sudah
   hafal letak tombol tetap berhenti sebentar. */
.tbl-bahaya{background:var(--merah);color:#fff}
.tbl-bahaya:hover{background:#7E1A12}
.tombol-baris{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- jendela tanya ----------

   Pengganti confirm() bawaan peramban.

   Bukan soal cantik. confirm() cuma bisa memuat tulisan polos, sedangkan
   yang perlu dibaca sebelum mengganti paket adalah daftar: harga lama ke
   harga baru, dan tiap batasan yang ikut berubah. Dijejalkan ke dalam
   satu paragraf tanpa baris dan tanpa penebalan, yang terjadi bukan
   orang membacanya lebih cepat — melainkan tidak membacanya sama
   sekali, lalu menekan OK.
   ---------------------------------------------------------------- */
.tirai{
  position:fixed;inset:0;z-index:80;
  display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(21,36,28,.55);
  /* Sengaja tanpa animasi masuk. Jendela yang muncul perlahan sempat
     menerima klik yang sebenarnya ditujukan ke tombol di belakangnya. */
}
.tirai[hidden]{display:none}

.jendela{
  width:100%;max-width:520px;max-height:calc(100vh - 40px);overflow:auto;
  background:var(--kertas-terang);border:2px solid var(--garis);border-radius:16px;
  padding:26px;box-shadow:0 18px 48px rgba(21,36,28,.22);
}
.jendela h3{
  font-family:var(--judul);font-weight:800;font-size:1.25rem;
  letter-spacing:-.02em;margin:0 0 12px;
}
.jendela-isi{font-size:.98rem;line-height:1.6;color:var(--tinta)}
.jendela-isi ul{margin:8px 0 0 18px}
.jendela-isi li{margin-bottom:3px}
.jendela-isi .penting{color:var(--jingga);font-weight:700}
/* Kotak isian di dalam jendela tanya, misalnya mengetik nama toko
   sebelum menghapusnya. */
.jendela-isi input[type="text"]{
  width:100%;padding:11px 13px;border:2px solid var(--garis);border-radius:10px;
  font-family:var(--badan);font-size:1rem;background:var(--kertas);color:var(--tinta);
}
.jendela-isi input[type="text"]:focus{outline:none;border-color:var(--jingga)}

/* Daftar pilihan di dalam jendela tanya, misalnya memilih Compose mana
   milik klien ini. */
.kotak-pilih{
  width:100%;padding:11px 13px;border:2px solid var(--garis);border-radius:10px;
  font-family:var(--badan);font-size:.96rem;background:var(--kertas);color:var(--tinta);
}
.kotak-pilih:focus{outline:none;border-color:var(--jingga)}

.jendela-kaki{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
@media (max-width:520px){
  .jendela-kaki{flex-direction:column-reverse}
  .jendela-kaki .tbl{width:100%}
}

/* Hasil akhir dua isian kedaluwarsa pembayaran, digambar ulang tiap kali
   salah satunya diketik. Ditaruh di dalam bagiannya sendiri supaya
   terbaca bersama kedua kotak yang menentukannya. */
.hasil-bayar:empty{display:none}
.hasil-bayar{
  margin-top:18px;padding:14px 16px;border-radius:12px;
  background:var(--hijau-muda);border:2px solid transparent;
  font-size:.94rem;line-height:1.55;
}
.hasil-bayar-bahaya{background:#FCF2F0;border-color:var(--merah);color:var(--tinta)}

/* ---------- kepala halaman ---------- */
.bar{padding:22px 0 6px}
.bar-isi{display:flex;align-items:center;justify-content:space-between;gap:20px}
.merek{display:flex;align-items:center;gap:10px;font-family:var(--judul);font-weight:800;font-size:1.15rem;letter-spacing:-.03em;text-decoration:none}
.merek span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--jingga);color:#fff;font-size:.9rem}
.menu{display:flex;gap:26px;font-family:var(--judul);font-weight:500;font-size:.95rem}
.menu a{text-decoration:none;opacity:.82}
.menu a:hover{opacity:1}
@media (max-width:860px){.menu{display:none}}

/* ---------- hero ---------- */
.hero{background:var(--hijau-tua);color:var(--kertas);padding-bottom:clamp(60px,8vw,104px);position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(34px,5vw,70px);align-items:center;padding-top:clamp(44px,6vw,76px)}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;padding-top:34px}}
.hero h1{margin-bottom:18px}
.hero-blok{background:var(--jingga);color:#fff;padding:0 .18em;border-radius:6px;display:inline-block}
.hero p{color:#CBDCD1;font-size:clamp(1.05rem,1.7vw,1.22rem);max-width:46ch}
.hero .tombol-baris{margin-top:30px}
.hero-cek{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;font-family:var(--judul);font-size:.9rem;font-weight:500;color:#B9CFC0}
.hero-cek li{display:flex;align-items:center;gap:7px}
.tik{flex:none;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

.masuk{animation:naik .6s cubic-bezier(.2,.7,.3,1) backwards}
.masuk-2{animation-delay:.09s}
.masuk-3{animation-delay:.17s}
@keyframes naik{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- nota ---------- */
.nota{
  position:relative;background:var(--nota);color:var(--tinta);
  padding:30px 28px 34px;border-radius:6px 6px 0 0;
  box-shadow:0 22px 44px rgba(0,0,0,.22);transform:rotate(-1.1deg);
}
.nota::after{
  content:"";position:absolute;left:0;right:0;bottom:-11px;height:11px;
  background:
    linear-gradient(45deg,transparent 50%,var(--nota) 50%),
    linear-gradient(-45deg,transparent 50%,var(--nota) 50%);
  background-size:14px 14px;background-position:0 0,7px 0;background-repeat:repeat-x;
}
.nota-atas{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  font-family:var(--judul);font-weight:700;font-size:1.02rem;letter-spacing:-.01em;
  padding-bottom:12px;border-bottom:2px solid var(--tinta)}
.nota-atas small{font-family:var(--judul);font-weight:500;font-size:.82rem;color:var(--tinta-lembut);letter-spacing:0}
.nota-baris{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;
  padding:11px 0;border-bottom:1px dashed var(--garis);font-size:.98rem;line-height:1.45}
.nota-baris b{font-family:var(--judul);font-weight:600;font-size:.97rem}
.nota-baris i{font-style:normal;color:var(--tinta-lembut);font-size:.86rem;display:block;margin-top:2px}
.nota-nilai{font-family:var(--judul);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--hijau)}
.nota-kaki{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:20px}
.nota-total{font-family:var(--judul);font-weight:500;font-size:.88rem;color:var(--tinta-lembut);line-height:1.5}
.nota-total b{display:block;font-weight:800;font-size:1.18rem;color:var(--tinta);letter-spacing:-.02em}
.stempel{
  font-family:var(--judul);font-weight:800;font-size:1.25rem;letter-spacing:.12em;
  color:var(--jingga);border:3px double var(--jingga);border-radius:8px;
  padding:7px 15px;transform:rotate(-9deg);opacity:.95;white-space:nowrap;
}

/* ---------- kartu ---------- */
.kisi{display:grid;gap:18px}
.k4{grid-template-columns:repeat(4,1fr)}
.k3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1000px){.k4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){.k3{grid-template-columns:1fr}}
@media (max-width:560px){.k4{grid-template-columns:1fr}}

.kartu{background:var(--kertas-terang);border:1px solid var(--garis);border-radius:var(--r);padding:24px}
.kartu h3{margin-bottom:8px}
.kartu p{font-size:.97rem;color:var(--tinta-lembut)}
.sec-terang .kartu{background:#fff}

.masalah{background:var(--nota);border:1px solid var(--garis);border-radius:var(--r);padding:26px 24px;border-top:5px solid var(--jingga)}
.masalah h3{margin-bottom:9px}
.masalah p{font-size:.97rem;color:var(--tinta-lembut)}

.dapat{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:900px){.dapat{grid-template-columns:1fr}}
.dapat-kartu{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:26px 24px;display:flex;flex-direction:column}
.dapat-kartu h3{font-size:1.32rem;margin-bottom:10px}
.dapat-kartu > p{color:var(--tinta-lembut);font-size:.97rem;margin-bottom:18px}
.daftar-tik li{display:flex;gap:9px;align-items:flex-start;padding:7px 0;font-size:.96rem;border-top:1px dashed var(--garis)}
.daftar-tik li:first-child{border-top:0}
.daftar-tik .tik{margin-top:5px;color:var(--hijau)}

/* ---------- pemilih jenis bisnis ---------- */
.pilih-baris{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}
.pilih{
  font-family:var(--judul);font-weight:600;font-size:.95rem;
  padding:10px 18px;border-radius:999px;cursor:pointer;
  background:transparent;border:2px solid var(--garis);color:var(--tinta);
  transition:background .14s ease,border-color .14s ease,color .14s ease;
}
.pilih:hover{border-color:var(--hijau)}
.pilih[aria-pressed="true"]{background:var(--hijau);border-color:var(--hijau);color:#fff}
.papan{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:clamp(22px,3vw,32px)}
.papan-kisi{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media (max-width:820px){.papan-kisi{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.papan-kisi{grid-template-columns:1fr}}
.papan-item h4{font-family:var(--judul);font-weight:600;font-size:.86rem;color:var(--tinta-lembut);margin-bottom:6px}
.papan-item p{font-family:var(--judul);font-weight:700;font-size:1.16rem;letter-spacing:-.02em;line-height:1.3}
.papan-catatan{margin-top:22px;padding-top:18px;border-top:1px dashed var(--garis);color:var(--tinta-lembut);font-size:.97rem}

/* ---------- kalkulator ---------- */
.kalk{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);align-items:center}
@media (max-width:860px){.kalk{grid-template-columns:1fr}}
.kalk-kotak{background:var(--nota);color:var(--tinta);border-radius:var(--r);padding:clamp(24px,3vw,32px);box-shadow:0 18px 36px rgba(0,0,0,.18)}
.kolom{margin-bottom:22px}
.kolom label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-family:var(--judul);font-weight:600;font-size:.92rem;margin-bottom:10px}
.kolom output{font-family:var(--judul);font-weight:800;font-size:1.1rem;font-variant-numeric:tabular-nums;color:var(--hijau)}
input[type=range]{width:100%;accent-color:var(--hijau);height:26px;cursor:pointer}
.hasil{border-top:2px solid var(--tinta);padding-top:20px}
.hasil-utama{font-family:var(--judul);font-weight:800;font-size:clamp(2rem,5.4vw,2.9rem);letter-spacing:-.035em;color:var(--jingga);font-variant-numeric:tabular-nums;line-height:1.05}
.hasil small{display:block;font-family:var(--judul);font-weight:500;font-size:.9rem;color:var(--tinta-lembut);margin-top:6px}
.hasil-tahun{margin-top:16px;padding-top:14px;border-top:1px dashed var(--garis);display:flex;justify-content:space-between;gap:12px;font-family:var(--judul);font-weight:600;font-size:.98rem;font-variant-numeric:tabular-nums}
.hasil-modal{margin-top:14px;font-size:.94rem;color:var(--tinta-lembut)}

/* ---------- langkah ---------- */
.langkah{counter-reset:l;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:860px){.langkah{grid-template-columns:1fr}}
.langkah li{counter-increment:l;background:var(--kertas-terang);border:1px solid var(--garis);border-radius:var(--r);padding:26px 24px;position:relative}
.langkah li::before{
  content:counter(l);display:grid;place-items:center;width:38px;height:38px;margin-bottom:14px;
  background:var(--hijau);color:#fff;border-radius:50%;
  font-family:var(--judul);font-weight:800;font-size:1.05rem;
}
.langkah h3{margin-bottom:8px}
.langkah p{font-size:.97rem;color:var(--tinta-lembut)}

/* ---------- paket ---------- */
.paket{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
@media (max-width:940px){.paket{grid-template-columns:1fr}}
.pk{position:relative;background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:28px 26px;display:flex;flex-direction:column;height:100%}
.pk-pilihan{border:2px solid var(--hijau);box-shadow:0 16px 34px rgba(15,110,63,.14);padding-top:36px}

/* Lencana duduk tepat di atas garis kartu, di tengah. Diangkat keluar
   dari alur supaya isi kartu tetap sejajar dengan kartu di sebelahnya. */
.pk-label{
  position:absolute;top:0;left:50%;transform:translate(-50%,-50%);
  font-family:var(--judul);font-weight:700;font-size:.8rem;
  color:#fff;background:var(--hijau);border-radius:999px;
  padding:6px 15px;white-space:nowrap;text-align:center;
}
.pk h3{font-size:1.5rem;margin-bottom:6px}
.pk-untuk{color:var(--tinta-lembut);font-size:.95rem;margin-bottom:20px}
.pk-harga{font-family:var(--judul);font-weight:800;font-size:2.3rem;letter-spacing:-.035em;line-height:1;margin-bottom:4px}
.pk-per{font-weight:600;font-size:1.05rem;letter-spacing:-.01em;color:var(--tinta-lembut)}
.pk-satuan{font-family:var(--judul);font-weight:500;font-size:.88rem;color:var(--tinta-lembut);margin-bottom:22px}
.pk .daftar-tik{margin-bottom:24px}
.pk .tbl{margin-top:auto;width:100%}

/* ---------- cocok / belum cocok ---------- */
.dua-kolom{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:820px){.dua-kolom{grid-template-columns:1fr}}
.kotak-ya{background:var(--hijau-muda);border:1px solid #B9D2C1;border-radius:var(--r);padding:26px 24px}
.kotak-tidak{background:#F6E9E3;border:1px solid #E4C7B9;border-radius:var(--r);padding:26px 24px}
.kotak-ya h3,.kotak-tidak h3{margin-bottom:14px}
.kotak-ya li,.kotak-tidak li{
  display:flex;gap:10px;align-items:flex-start;
  padding:9px 0;border-top:1px dashed rgba(21,36,28,.18);font-size:.97rem;line-height:1.5;
}
.kotak-ya li:first-child,.kotak-tidak li:first-child{border-top:0}
.kotak-ya li .tik,.kotak-tidak li .tik{margin-top:5px}
.kotak-ya li .tik{color:var(--hijau)}
.kotak-tidak li .tik{color:#A3452B}
.kutip{margin:34px 0 0;font-size:clamp(1.15rem,2.4vw,1.5rem);line-height:1.45;max-width:44ch;font-weight:600}

.jujur{background:var(--nota);border:1px dashed var(--tinta-lembut);border-radius:var(--r);padding:clamp(24px,3vw,34px);margin-top:20px}
.jujur ul{columns:2;column-gap:34px;margin-top:14px}
@media (max-width:680px){.jujur ul{columns:1}}
.jujur li{padding:6px 0;font-size:.97rem;color:var(--tinta-lembut);break-inside:avoid}
.jujur li b{color:var(--tinta);font-family:var(--judul);font-weight:600}

/* ---------- faq ---------- */
.faq{max-width:820px}
.faq details{border-bottom:1px solid var(--garis)}
.faq summary{
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:20px 0;cursor:pointer;list-style:none;
  font-family:var(--judul);font-weight:600;font-size:1.06rem;letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--judul);font-weight:500;font-size:1.5rem;color:var(--hijau);line-height:1;flex:none}
.faq details[open] summary::after{content:"–"}
.faq p{padding:0 0 22px;max-width:70ch;color:var(--tinta-lembut);font-size:1rem}

/* ---------- penutup dan kaki ---------- */
.penutup{text-align:center}
.penutup .tombol-baris{justify-content:center;margin-top:28px}
.penutup p{margin-inline:auto}

footer{background:var(--tinta);color:#C2CCC5;padding:clamp(48px,6vw,72px) 0 0;font-size:.96rem}
.kaki{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:34px}
@media (max-width:760px){.kaki{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.kaki{grid-template-columns:1fr}}
footer h4{font-family:var(--judul);font-weight:700;font-size:1rem;color:var(--kertas);margin-bottom:14px}
footer a{color:#C2CCC5;text-decoration:none}
footer a:hover{color:#fff;text-decoration:underline}
footer li{padding:5px 0}
.kaki-bawah{margin-top:44px;padding:22px 0;border-top:1px solid rgba(237,239,231,.16);font-size:.88rem;color:#8FA096}

.bilah{position:fixed;left:0;right:0;bottom:0;z-index:20;display:none;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(21,36,28,.96);backdrop-filter:blur(6px)}
.bilah .tbl{width:100%;padding:14px}
@media (max-width:720px){
  .bilah{display:block}
  body.ada-bilah{padding-bottom:78px}
}

/* ============================================================
   Halaman form pemesanan
   ============================================================ */

.kepala-tipis{background:var(--hijau-tua);color:var(--kertas);padding:20px 0}
.kepala-tipis .merek{color:var(--kertas)}
.kepala-tipis .bar-isi small{font-family:var(--judul);font-size:.88rem;color:#A9C4B4}

.form-sec{padding:clamp(34px,5vw,64px) 0 clamp(60px,8vw,100px)}
.form-judul{margin-bottom:10px}
.form-lead{margin-bottom:clamp(28px,4vw,44px)}

.pilih-paket{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:34px}
@media (max-width:820px){.pilih-paket{grid-template-columns:1fr}}
.kartu-paket{position:relative;display:block;cursor:pointer}
.kartu-paket input{position:absolute;opacity:0;width:1px;height:1px}
.kartu-paket .isi{
  height:100%;background:#fff;border:2px solid var(--garis);border-radius:var(--r);
  padding:20px 20px 22px;transition:border-color .14s ease,box-shadow .14s ease;
}
.kartu-paket:hover .isi{border-color:var(--hijau)}
.kartu-paket input:checked + .isi{border-color:var(--hijau);box-shadow:0 12px 26px rgba(15,110,63,.16)}
.kartu-paket input:focus-visible + .isi{outline:3px solid var(--jingga);outline-offset:3px}
.kartu-paket h3{font-size:1.24rem;margin-bottom:4px}
.kartu-paket .harga{font-family:var(--judul);font-weight:800;font-size:1.5rem;letter-spacing:-.03em;color:var(--hijau);margin:8px 0 6px}
.kartu-paket .untuk{font-size:.92rem;color:var(--tinta-lembut);line-height:1.5}
.kartu-paket .tanda{
  position:absolute;top:14px;right:14px;width:24px;height:24px;border-radius:50%;
  border:2px solid var(--garis);display:grid;place-items:center;background:#fff;
}
.kartu-paket input:checked ~ .isi .tanda,
.kartu-paket input:checked + .isi .tanda{background:var(--hijau);border-color:var(--hijau)}
.kartu-paket .tanda svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.kartu-paket input:checked + .isi .tanda svg{opacity:1}

.pilih-durasi{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.durasi{position:relative;cursor:pointer}
.durasi input{position:absolute;opacity:0;width:1px;height:1px}
.durasi .isi{
  display:flex;flex-direction:column;gap:2px;background:#fff;
  border:2px solid var(--garis);border-radius:12px;padding:12px 18px;
  transition:border-color .14s ease,box-shadow .14s ease;
}
.durasi:hover .isi{border-color:var(--hijau)}
.durasi input:checked + .isi{border-color:var(--hijau);box-shadow:0 10px 22px rgba(15,110,63,.14)}
.durasi input:focus-visible + .isi{outline:3px solid var(--jingga);outline-offset:3px}
.durasi b{font-family:var(--judul);font-weight:700;font-size:1.02rem;letter-spacing:-.02em}
.durasi span{font-family:var(--judul);font-weight:600;font-size:.82rem;color:var(--hijau)}
.durasi span:empty{display:none}

.rangkuman{
  background:var(--hijau-muda);border:1px solid #B9D2C1;border-radius:var(--r);
  padding:20px 22px;margin-bottom:28px;
}
.rangkuman-baris{display:flex;justify-content:space-between;gap:14px;padding:6px 0;font-size:.98rem}
.rangkuman-baris:last-child{
  margin-top:8px;padding-top:12px;border-top:1px dashed rgba(21,36,28,.25);
  font-family:var(--judul);font-weight:800;font-size:1.25rem;letter-spacing:-.02em;
}
.rangkuman-baris span:first-child{color:var(--tinta-lembut)}
.rangkuman-baris:last-child span:first-child{color:var(--tinta);font-size:1rem;align-self:center}
.rangkuman-hemat{color:var(--hijau);font-weight:600}

.form-kotak{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:clamp(22px,3.4vw,36px)}
.bidang{margin-bottom:24px}
.bidang > label,.bidang .tanya{
  display:block;font-family:var(--judul);font-weight:600;font-size:.98rem;margin-bottom:8px;
}
.bidang .bantu{display:block;font-family:var(--badan);font-weight:400;font-size:.9rem;color:var(--tinta-lembut);margin-top:3px}
.wajib{color:var(--jingga)}

input[type=text],input[type=tel],input[type=email],input[type=password],input[type=number],select,textarea{
  width:100%;font-family:var(--badan);font-size:1.02rem;color:var(--tinta);
  background:var(--kertas-terang);border:2px solid var(--garis);border-radius:10px;
  padding:13px 14px;transition:border-color .14s ease,background .14s ease;
}
textarea{min-height:110px;resize:vertical;line-height:1.6}
select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234B5B51' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:44px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--hijau);background:#fff}
input.salah,select.salah{border-color:var(--merah);background:#FCF2F0}

.kotak-centang{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (max-width:600px){.kotak-centang{grid-template-columns:1fr}}
.centang{
  display:flex;align-items:center;gap:11px;cursor:pointer;
  background:var(--kertas-terang);border:2px solid var(--garis);border-radius:10px;
  padding:12px 14px;font-size:.98rem;transition:border-color .14s ease,background .14s ease;
}
.centang:hover{border-color:var(--hijau)}
.centang input{width:20px;height:20px;accent-color:var(--hijau);flex:none;margin:0}
.centang:has(input:checked){border-color:var(--hijau);background:var(--hijau-muda)}

.geser-nilai{
  font-family:var(--judul);font-weight:800;font-size:1.5rem;letter-spacing:-.03em;
  color:var(--hijau);font-variant-numeric:tabular-nums;
}
.geser-tepi{display:flex;justify-content:space-between;font-family:var(--judul);font-size:.84rem;color:var(--tinta-lembut);margin-top:2px}

.jebakan{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.pesan-salah{
  background:#FBECE8;border:1px solid #E7BFB2;color:#8A2C15;
  border-radius:10px;padding:13px 15px;font-size:.97rem;margin-bottom:20px;
}
.pesan-salah:empty{display:none}

.form-kaki{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-top:8px}
.form-kaki .tbl{flex:1;min-width:220px}
.form-kaki small{font-size:.9rem;color:var(--tinta-lembut);max-width:38ch}

/* ---------- bagian di dalam form pemesanan ----------
   Form ini menanyakan empat hal yang berbeda sifatnya: siapa pemesannya,
   alamat tokonya, cara dia menerima uang, dan cara dia mengirim barang.
   Tanpa pemisah, keempatnya terbaca sebagai satu tumpukan kolom panjang
   dan orang berhenti di tengah. */
.form-bagian{margin:36px 0 22px;padding-top:26px;border-top:1px solid var(--garis)}
.form-bagian h2{font-size:1.32rem;margin-bottom:6px}
.form-bagian p{font-size:.95rem;color:var(--tinta-lembut);margin:0;line-height:1.55}

.kotak-pilihan{display:grid;gap:10px}
.centang-pilih{align-items:flex-start}
.centang-pilih span{display:block;line-height:1.45}
.centang-pilih b{font-family:var(--judul);font-weight:600;font-size:.97rem;display:block}
.centang-pilih i{
  font-style:normal;font-size:.9rem;color:var(--tinta-lembut);
  display:block;margin-top:2px;line-height:1.45;
}

/* Kolom subdomain dan akhiran domain induknya, disambung jadi satu kotak
   supaya terbaca sebagai satu alamat, bukan dua isian. */
.alamat-baris{display:flex;align-items:stretch}
.alamat-baris input{flex:1;min-width:0;border-radius:10px 0 0 10px;border-right-width:0}
.alamat-induk{
  display:flex;align-items:center;padding:0 15px;white-space:nowrap;
  font-family:var(--judul);font-weight:600;font-size:.98rem;color:var(--tinta-lembut);
  background:var(--hijau-muda);border:2px solid var(--garis);border-left:0;
  border-radius:0 10px 10px 0;
}
@media (max-width:480px){
  .alamat-baris{display:block}
  .alamat-baris input{border-radius:10px;border-right-width:2px}
  .alamat-induk{display:block;border:0;background:none;padding:6px 0 0;font-size:.94rem}
}

.cek-hasil{font-size:.93rem;line-height:1.5;margin-top:9px}
.cek-hasil:empty{display:none}
.cek-ok{color:var(--hijau);font-weight:600}
.cek-salah{color:var(--merah);font-weight:600}
.cek-netral{color:var(--tinta-lembut)}

/* Kolom yang cuma muncul kalau pilihan di atasnya menuntutnya. Digeser
   masuk supaya jelas kepunyaan pilihan yang mana. */
.bidang-anak{
  margin:0 0 26px;padding:18px 20px;
  background:var(--kertas-terang);border-left:3px solid var(--hijau-muda);
  border-radius:0 10px 10px 0;
}
.bidang-anak > .bidang:last-child{margin-bottom:0}

.petunjuk-kecil{
  font-size:.92rem;color:var(--tinta-lembut);line-height:1.6;margin:0 0 16px;
}
.petunjuk-kecil a{color:var(--hijau);font-weight:600}
.bidang-anak > .petunjuk-kecil{margin-top:0}

.petunjuk{margin-top:14px;font-size:.93rem}
.petunjuk summary{
  cursor:pointer;font-family:var(--judul);font-weight:600;color:var(--hijau);
}
.petunjuk ol{list-style:decimal;margin:12px 0 0;padding-left:22px;color:var(--tinta-lembut);line-height:1.6}
.petunjuk li{margin-bottom:7px}
.petunjuk li:last-child{margin-bottom:0}
.petunjuk a{color:var(--hijau);font-weight:600}

/* ============================================================
   Halaman pesanan dan pembayaran
   ============================================================ */

.status-lencana{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--judul);font-weight:700;font-size:.9rem;
  padding:7px 15px;border-radius:999px;
}
.st-menunggu{background:#FBE9C8;color:#7A4A05}
.st-lunas{background:var(--hijau-muda);color:#0A4D2C}
.st-batal{background:#F3D9D4;color:#8A2C15}
.st-kedaluwarsa{background:#E2E5DA;color:#4B5B51}

/* Toko klien yang sedang mati atau instalasinya sudah dihapus. Merah,
   bukan abu-abu: ini keadaan yang harus terbaca dari seberang ruangan,
   bukan keterangan tambahan yang boleh terlewat. */
.lencana-mati{background:#F3D9D4;color:#8A2C15}

.bayar-kotak{background:var(--nota);border:1px solid var(--garis);border-radius:var(--r);padding:clamp(22px,3.4vw,34px);margin-bottom:20px}
.bayar-total{text-align:center;padding:6px 0 20px;border-bottom:2px solid var(--tinta);margin-bottom:22px}
.bayar-total .angka{
  font-family:var(--judul);font-weight:800;font-size:clamp(2.1rem,7vw,3.1rem);
  letter-spacing:-.04em;color:var(--tinta);font-variant-numeric:tabular-nums;line-height:1.05;
}
.bayar-total .catatan{font-family:var(--judul);font-size:.9rem;color:var(--tinta-lembut);margin-top:8px}
.bayar-total .catatan b{color:var(--jingga)}

.bayar-cara{padding-top:20px;margin-top:20px;border-top:1px dashed var(--garis)}
.bayar-cara:first-of-type{padding-top:0;margin-top:0;border-top:0}
.bayar-cara h3{font-size:1.08rem;margin-bottom:6px}
.bayar-catatan{font-size:.94rem;color:var(--tinta-lembut);margin:0}

.rek{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  background:#fff;border:1px solid var(--garis);border-radius:10px;padding:16px 18px;margin-bottom:14px}
.rek-nama{font-family:var(--judul);font-weight:600;font-size:.9rem;color:var(--tinta-lembut)}
.rek-nomor{font-family:var(--judul);font-weight:800;font-size:1.35rem;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.rek-atas{font-size:.94rem;color:var(--tinta-lembut)}

.salin{
  font-family:var(--judul);font-weight:600;font-size:.86rem;cursor:pointer;
  background:transparent;border:2px solid var(--garis);border-radius:999px;padding:8px 14px;color:var(--tinta);
}
.salin:hover{border-color:var(--hijau);color:var(--hijau)}

.qris{text-align:center;padding:18px 0 4px;border-top:1px dashed var(--garis);margin-top:18px}
.qris img{width:min(260px,80%);border-radius:10px;border:1px solid var(--garis);background:#fff;padding:10px}

.hitung-mundur{
  display:flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--judul);font-weight:600;font-size:.95rem;color:var(--tinta-lembut);
  margin-top:18px;font-variant-numeric:tabular-nums;
}
.rincian{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:clamp(20px,3vw,28px)}
.rincian-samar{margin-top:14px;font-size:.9rem;color:var(--tinta-lembut);line-height:1.6}
.rincian-baris{display:flex;gap:14px;justify-content:space-between;padding:11px 0;border-bottom:1px dashed var(--garis);font-size:.98rem}
.rincian-baris:last-child{border-bottom:0}
.rincian-baris span:first-child{color:var(--tinta-lembut);font-family:var(--judul);font-weight:500;font-size:.92rem;flex:none}
.rincian-baris span:last-child{text-align:right;font-weight:600}

.langkah-bayar{counter-reset:lb;margin:22px 0 0}
.langkah-bayar li{counter-increment:lb;position:relative;padding:9px 0 9px 34px;font-size:.98rem;color:var(--tinta-lembut)}
.langkah-bayar li::before{
  content:counter(lb);position:absolute;left:0;top:10px;width:22px;height:22px;
  display:grid;place-items:center;border-radius:50%;background:var(--hijau);color:#fff;
  font-family:var(--judul);font-weight:700;font-size:.78rem;
}

/* ============================================================
   Panel admin
   ============================================================ */

.admin-bar{background:var(--tinta);color:var(--kertas);padding:16px 0}
.admin-bar .bar-isi{align-items:center}
.admin-bar .merek{color:var(--kertas)}

.masuk-kotak{max-width:420px;margin:clamp(50px,10vw,110px) auto;background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:32px}
.masuk-kotak h1{font-size:1.7rem;margin-bottom:8px}
.masuk-kotak p{color:var(--tinta-lembut);font-size:.96rem;margin-bottom:22px}

.ringkas{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}
@media (max-width:820px){.ringkas{grid-template-columns:repeat(2,1fr)}}
.ringkas-item{background:#fff;border:1px solid var(--garis);border-radius:12px;padding:18px 20px}
.ringkas-item b{display:block;font-family:var(--judul);font-weight:800;font-size:1.9rem;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}
.ringkas-item span{font-family:var(--judul);font-size:.86rem;color:var(--tinta-lembut)}

.saring{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:20px}
.saring input[type=text]{width:auto;flex:1;min-width:200px;padding:10px 13px}
.saring select{width:auto;min-width:160px;padding:10px 40px 10px 13px}

.pesanan-kartu{background:#fff;border:1px solid var(--garis);border-radius:var(--r);padding:20px 22px;margin-bottom:14px}
.pesanan-atas{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px}
.pesanan-nomor{font-family:var(--judul);font-weight:800;font-size:1.1rem;letter-spacing:-.02em}
.pesanan-isi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 20px;padding:16px 0;border-top:1px dashed var(--garis)}
@media (max-width:900px){.pesanan-isi{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.pesanan-isi{grid-template-columns:1fr}}
.pesanan-isi div span{display:block;font-family:var(--judul);font-size:.8rem;color:var(--tinta-lembut);margin-bottom:2px}
.pesanan-isi div b{font-weight:600;font-size:.98rem;word-break:break-word}
.pesanan-tautan{padding:14px 0;border-top:1px dashed var(--garis)}
.pesanan-tautan span{display:block;font-family:var(--judul);font-size:.8rem;color:var(--tinta-lembut);margin-bottom:2px}
.pesanan-tautan a{font-size:.92rem;word-break:break-all}
.pesanan-tautan em{display:block;margin-top:6px;font-size:.85rem;color:var(--tinta-lembut);font-style:normal}
.pesanan-tombol{display:flex;flex-wrap:wrap;gap:9px;padding-top:14px;border-top:1px dashed var(--garis)}

.kosong{text-align:center;padding:60px 20px;color:var(--tinta-lembut)}
.kosong h3{margin-bottom:8px;color:var(--tinta)}

/* ============================================================
   Panel admin — klien
   ============================================================ */

.admin-menu{display:flex;gap:6px;font-family:var(--judul);font-weight:600;font-size:.92rem;margin-inline:auto}
.admin-menu a{
  text-decoration:none;color:var(--kertas);opacity:.62;
  padding:7px 14px;border-radius:9px;transition:opacity .14s ease,background .14s ease;
}
.admin-menu a:hover{opacity:1}
.admin-menu a.aktif{opacity:1;background:rgba(237,239,231,.14)}
@media (max-width:760px){
  .admin-bar .bar-isi{flex-wrap:wrap}
  .admin-menu{order:3;width:100%;margin:6px 0 0}
}

.klien-kepala{
  display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:flex-start;
  margin-bottom:clamp(20px,3vw,30px);
}
.klien-kepala h1{font-size:clamp(1.6rem,3.4vw,2.1rem);margin:6px 0 4px}
.klien-kepala p{font-family:var(--judul);font-size:.92rem;color:var(--tinta-lembut)}
.klien-kepala-kanan{text-align:right}
.kembali{
  font-family:var(--judul);font-weight:600;font-size:.88rem;
  color:var(--tinta-lembut);text-decoration:none;
}
.kembali:hover{color:var(--hijau)}

.tab-baris{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px;
  border-bottom:1px solid var(--garis);
}
.tab-baris button{
  font-family:var(--judul);font-weight:600;font-size:.95rem;color:var(--tinta-lembut);
  background:none;border:0;border-bottom:3px solid transparent;
  padding:11px 16px;margin-bottom:-1px;cursor:pointer;
}
.tab-baris button:hover{color:var(--tinta)}
.tab-baris button.aktif{color:var(--hijau);border-bottom-color:var(--hijau)}

/* Kotak "yang dikirim ke toko klien" di bagian Bangun Aplikasi Android. */
.ke-toko{margin-top:14px;padding:14px 16px;background:var(--kertas-terang);border:1px solid var(--garis);border-radius:calc(var(--r) - 4px)}
.ke-toko-judul{font-family:var(--judul);font-weight:600;font-size:.86rem;margin-bottom:10px}
.ke-toko-baris{display:flex;gap:14px;justify-content:space-between;padding:6px 0;font-size:.94rem}
.ke-toko-baris span{color:var(--tinta-lembut);flex:none}
.ke-toko-baris b{font-weight:600;text-align:right;word-break:break-all}
/* Penyamaan setelan deploy, di bagian Server halaman daftar klien. */
.samakan-deploy,.samakan-deploy-bergilir{margin-top:22px;padding-top:18px;border-top:1px dashed var(--garis)}
.samakan-judul{font-family:var(--judul);font-weight:600;font-size:.86rem;margin-bottom:8px}
.samakan-gagal{margin-top:12px;padding:12px 14px;background:#FBECE8;border:1px solid #E7BFB2;border-radius:10px;font-size:.93rem;line-height:1.7}

.spek-bagian{margin-bottom:18px}
.spek-bagian h3{margin-bottom:4px}
.spek-untuk{color:var(--tinta-lembut);font-size:.94rem}
.spek-kisi{display:grid;grid-template-columns:repeat(2,1fr);gap:0 22px;margin-top:20px}
@media (max-width:760px){.spek-kisi{grid-template-columns:1fr}}
.spek-kisi .bidang{margin-bottom:20px}
.bidang-saklar{display:flex;flex-direction:column;justify-content:center}
.bidang-saklar .bantu{margin-top:8px}
/* Kotak centang di sini berupa <label> tepat di dalam .bidang, sehingga
   aturan .bidang > label yang menjadikannya block ikut kena. Dikembalikan
   ke flex supaya jarak kotak ke tulisannya tidak hilang. */
.bidang-saklar > label.centang{
  display:flex;align-items:center;margin-bottom:0;
  font-family:var(--badan);font-weight:400;font-size:.98rem;
}

.kotak-env{
  width:100%;min-height:340px;resize:vertical;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.86rem;line-height:1.65;white-space:pre;overflow-wrap:normal;overflow-x:auto;
  background:var(--tinta);color:#D5E0D8;border:0;border-radius:10px;padding:18px;
}
/* Latar gelapnya HARUS ditulis ulang di sini.
   Aturan umum "textarea:focus" di atas memutihkan latar semua kotak
   teks saat disorot, dan kekhususannya mengalahkan .kotak-env — jadi
   kotak ini berubah jadi putih sementara tulisannya tetap abu muda,
   dan seluruh isinya nyaris tak terbaca tepat ketika sedang dipakai. */
.kotak-env:focus{
  outline:2px solid var(--hijau);outline-offset:2px;
  background:var(--tinta);color:#D5E0D8;
}

.kemajuan{display:flex;align-items:center;gap:12px;padding:14px 0 0}
.kemajuan span{
  font-family:var(--judul);font-weight:600;font-size:.84rem;color:var(--tinta-lembut);
  white-space:nowrap;font-variant-numeric:tabular-nums;
}
.kemajuan-bar{flex:1;height:8px;border-radius:99px;background:var(--garis);overflow:hidden}
.kemajuan-bar i{display:block;height:100%;background:var(--hijau);border-radius:99px;transition:width .25s ease}
.kemajuan.besar{padding:0}
.kemajuan.besar .kemajuan-bar{height:12px}
.kemajuan.besar span{font-size:.95rem;color:var(--tinta)}

.langkah-kelompok{margin-bottom:16px}
.langkah-atas{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.langkah-atas span{
  font-family:var(--judul);font-weight:700;font-size:.9rem;color:var(--tinta-lembut);
  font-variant-numeric:tabular-nums;
}
.langkah-daftar{margin-top:16px}
.langkah-daftar li{border-top:1px dashed var(--garis)}
.langkah-daftar li:first-child{border-top:0}
.langkah-daftar label{display:flex;gap:13px;align-items:flex-start;padding:13px 0;cursor:pointer}
.langkah-daftar input{width:20px;height:20px;accent-color:var(--hijau);flex:none;margin:2px 0 0}
.langkah-daftar b{font-family:var(--judul);font-weight:600;font-size:.99rem;display:block}
.langkah-daftar i{
  font-style:normal;display:block;margin-top:4px;
  font-size:.92rem;color:var(--tinta-lembut);line-height:1.55;
}
.langkah-daftar li.sudah b{color:var(--tinta-lembut);text-decoration:line-through}
.langkah-daftar li.sudah i{opacity:.7}

.riwayat li{
  display:grid;grid-template-columns:auto 1fr;gap:2px 14px;
  padding:13px 0;border-top:1px dashed var(--garis);
}
.riwayat li:first-child{border-top:0}
.riwayat b{font-family:var(--judul);font-weight:700;font-size:.99rem}
.riwayat span{font-family:var(--judul);font-weight:600;font-size:.92rem;color:var(--hijau)}
.riwayat i{grid-column:1/-1;font-style:normal;font-size:.9rem;color:var(--tinta-lembut)}

.calon-baris{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  padding:14px 0;border-top:1px dashed var(--garis);
}
.calon-baris:first-child{border-top:0}
.calon-baris b{font-family:var(--judul);font-weight:700;font-size:1.02rem;display:block}
.calon-baris i{font-style:normal;font-size:.9rem;color:var(--tinta-lembut);display:block;margin-top:2px}

/* ============================================================
   Panel admin — penyunting paket
   ============================================================ */

.sunting-kartu{margin-bottom:18px}
.sunting-atas{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  padding-bottom:16px;margin-bottom:18px;border-bottom:1px dashed var(--garis);
}
.sunting-atas h3{margin:0}
.sunting-judul{
  font-family:var(--judul);font-weight:700;font-size:1.05rem;
  margin:12px 0 4px;padding-top:18px;border-top:1px dashed var(--garis);
}

/* Kotak centang yang menumpang di baris tombol, jadi tingginya disamakan
   dengan tombol kecil di sebelahnya. */
.centang-rapat{padding:8px 13px;font-size:.9rem;margin:0}
.centang-rapat input{width:17px;height:17px}

.baris-durasi{
  display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;
  padding:14px 0;border-top:1px dashed var(--garis);
}
.baris-durasi:first-child{border-top:0;padding-top:0}
.baris-durasi .bidang{margin-bottom:0}
@media (max-width:600px){.baris-durasi{grid-template-columns:1fr 1fr;gap:10px}}

/* Bilah simpan menempel di bawah layar: halaman ini panjang, dan tombol
   simpan yang cuma ada di ujung membuat orang menggulir jauh untuk
   menyimpan satu angka. */
.bilah-simpan{
  position:sticky;bottom:0;z-index:20;
  background:rgba(21,36,28,.97);backdrop-filter:blur(6px);
  padding:14px 0 calc(14px + env(safe-area-inset-bottom));
}
.bilah-simpan small{font-family:var(--judul);font-size:.88rem;color:#A9C4B4}
.bilah-simpan .tbl-garis{color:var(--kertas)}

/* Baris tambah addon.

   Satu kisi untuk seluruh baris, tiga baris tetap: label, kolom isian,
   lalu keterangan. Tiap .bidang dijadikan "display:contents" supaya
   isinya jatuh langsung ke kisi induknya — dengan begitu keempat kolom
   memakai baris yang sama.

   Sebelumnya tiap .bidang berdiri sendiri dan disejajarkan lewat
   "align-items:end". Kolom Harga punya baris keterangan di bawahnya
   sedangkan dua kolom lain tidak, jadi yang disejajarkan adalah dasar
   yang berbeda-beda: kolom isiannya naik-turun tidak karuan. */
.tambah-addon{
  display:grid;grid-template-columns:1.4fr 1fr 1.2fr auto;
  grid-template-rows:auto auto auto;
  column-gap:14px;row-gap:6px;align-items:start;
  margin-top:20px;padding-top:18px;border-top:1px dashed var(--garis);
}
.tambah-addon > .bidang{display:contents}
.tambah-addon > .bidang:nth-child(1) > *{grid-column:1}
.tambah-addon > .bidang:nth-child(2) > *{grid-column:2}
.tambah-addon > .bidang:nth-child(3) > *{grid-column:3}
.tambah-addon > .bidang > label{grid-row:1;margin-bottom:0}
.tambah-addon > .bidang > input,
.tambah-addon > .bidang > select{grid-row:2}
.tambah-addon > .bidang > .bantu{grid-row:3;margin-top:0}
/* Tombolnya ikut tinggi kolom isian, bukan tinggi tulisannya sendiri. */
.tambah-addon > button{grid-column:4;grid-row:2;align-self:stretch}

/* Di layar sempit semuanya kembali bertumpuk satu kolom, jadi
   penempatan baris dan kolom di atas justru harus dilepas. */
@media (max-width:820px){
  .tambah-addon{grid-template-columns:1fr;grid-template-rows:none;row-gap:0}
  .tambah-addon > .bidang{display:block;margin-bottom:18px}
  .tambah-addon > .bidang > label{margin-bottom:8px}
  .tambah-addon > .bidang > *,
  .tambah-addon > button{grid-column:auto;grid-row:auto}
  .tambah-addon > button{align-self:auto}
}

/* Hapus ditulis sebagai tautan, bukan tombol: dia menumpang di baris
   keterangan yang sudah kecil, dan tombol di sana akan lebih menonjol
   daripada isinya sendiri. */
.tautan-hapus{
  background:none;border:0;padding:0;cursor:pointer;
  font-family:var(--judul);font-size:.86rem;color:var(--merah);text-decoration:underline;
}
.tautan-hapus:hover{opacity:.75}

/* Addon di formulir pemesanan: nama dan harganya ditumpuk supaya barisnya
   tetap terbaca di lebar ponsel. */
.centang-addon{align-items:flex-start}
.centang-addon span{display:block;line-height:1.4}
.centang-addon b{font-family:var(--judul);font-weight:600;font-size:.97rem;display:block}
.centang-addon i{
  font-style:normal;font-family:var(--judul);font-weight:700;
  font-size:.9rem;color:var(--hijau);display:block;margin-top:2px;
}

/* Kabar berhasil. Sepasang dengan .pesan-salah, tapi warnanya hijau dan
   isinya hilang sendiri setelah beberapa detik. */
.pesan-baik{
  background:var(--hijau-muda);border:1px solid #B9D2C1;color:var(--hijau-tua);
  border-radius:10px;padding:13px 15px;font-size:.97rem;margin-bottom:20px;
}
.pesan-baik:empty{display:none}

/* ---------- akun dan tim ---------- */

/* Nama yang sedang masuk, di bilah atas. Ditulis kecil: ia jawaban atas
   pertanyaan "ini akun siapa", bukan judul halaman. */
.saya-siapa{
  font-family:var(--judul);font-weight:600;font-size:.86rem;
  color:#A9C4B4;white-space:nowrap;
}
@media (max-width:760px){.saya-siapa{display:none}}

/* Pengingat sandi sementara. Dipasang di ATAS seluruh halaman, bukan di
   sudut, karena yang memakainya biasanya tidak pernah kembali ke halaman
   yang menyebutkannya. */
.pita-ingat{
  background:var(--jingga);color:#fff;
  font-family:var(--judul);font-weight:600;font-size:.94rem;
  padding:11px 18px;text-align:center;
}
.pita-ingat a{color:#fff;text-decoration:underline}

.tim-subjudul{
  font-family:var(--judul);font-weight:700;font-size:1.02rem;
  margin:26px 0 4px;padding-top:22px;border-top:1px solid var(--garis);
}

.tim-baris{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  background:var(--kertas-terang);border:1px solid var(--garis);border-radius:10px;
  padding:14px 16px;margin-bottom:10px;
}
.tim-baris b{font-family:var(--judul);font-weight:700;font-size:1rem;display:block}
.tim-email{display:block;font-size:.93rem;color:var(--tinta-lembut)}
.tim-tanda{
  display:block;font-family:var(--judul);font-size:.84rem;color:var(--tinta-lembut);margin-top:2px;
}
/* Yang nonaktif dipudarkan, tapi tombolnya TIDAK — tombol Aktifkan justru
   yang paling dicari di baris ini. */
.tim-mati > div:first-child{opacity:.55}
.tim-tombol{display:flex;flex-wrap:wrap;gap:8px}

/* Sandi sementara. Sengaja mencolok dan sengaja tidak hilang sendiri:
   ia cuma muncul sekali, dan yang melihatnya harus menyalinnya. */
.sandi-sekali{
  margin-top:16px;padding:18px 20px;
  background:var(--hijau-muda);border:2px solid var(--hijau);border-radius:10px;
}
.sandi-sekali b{font-family:var(--judul);font-weight:700;display:block;margin-bottom:10px}
.sandi-sekali code{
  display:block;background:#fff;border:1px solid var(--garis);border-radius:8px;
  padding:12px 14px;font-size:1.15rem;letter-spacing:.06em;
  word-break:break-all;user-select:all;
}
.sandi-sekali p{font-size:.92rem;color:var(--tinta-lembut);margin:12px 0}
