Hidrolisis bertingkat garam dari asam lemah poliprotik adalah proses anion garam bereaksi dengan air secara bertahap (tidak sekaligus) karena anion tersebut mampu menerima proton (H+) lebih dari satu kali, masing-masing dengan konstanta kesetimbangan (Kb) berbeda.
Hal ini terjadi karena asam lemah polipotik (seperti H2CO3, H2SO3, dan H3PO4) melepaskan H+-nya secara bertahap saat membentuk garam. Akibatnya, anion yang terbentuk masih dapat bereaksi kembali dengan air secara bertahap pula.
Yang menarik, anion antara (misalnya HCO3−, HSO3−, H2PO4−, HPO42−) bersifat amfiprotik, spesi yang dapat bertindak sebagai asam (melepas H+) sekaligus sebagai basa (menerima H+) dalam larutan yang sama. Dua proses ini berjalan bersamaan, dan mana yang lebih dominan akan menentukan apakah larutan bersifat asam atau basa.
Catatan: Garam jenis ini adalah hasil pelarutan kemudian terdiosiasi (terurai) kemudian anionnya bereaksi dengan air (anionnya terhidrolisis bertingkat).
📌Dua Jenis Garam yang Dibahas
Dari setiap asam polipotik, dapat terbentuk dua jenis garam:
-
Garam normal (reaksi sempurna), semua H+ asam sudah tergantikan oleh Na+. Anionnya bukan amfiprotik. Hidrolisisnya satu arah (hanya sebagai basa). Contoh: Na2CO3, Na2SO3, Na3PO4.
- Garam asam (reaksi parsial), masih ada H+ asam yang belum tergantikan. Anionnya amfiprotik, inilah yang mengalami hidrolisis bertingkat sejati. Contoh: NaHCO3, NaHSO3, NaH2PO4, Na2PO4.
Artikel ini membahas keduanya secara berdampingan agar perbandingan perhitungan pH-nya menjadi jelas.
A.1 Ionisasi H2CO3 dan Garam yang Terbentuk
H2CO3 adalah asam dipotik, dengan ionisasi yang terjadi dalam 2 tahap:
Tahap 1 H2CO3 ⇌ H+ + HCO3−
(Ka1 = 4,3 × 10−7)
Tahap 2 HCO3− ⇌ H+ + CO32−
(Ka2 = 4,7 × 10−11)
H2CO3 + NaOH menghasilkan dua jenis garam:
| Reaksi | Garam | Nama Garam | Jenis |
| H2CO3 + NaOH → | NaHCO3 + H2O | Natrium bikarbonat | Garam asam (amfiprotik) |
| H2CO3 + 2NaOH → | Na2CO3 + 2H2O | Natrium karbonat | Garam normal |
Garam Normal
A.2 Hidrolisis Na2CO3 (Natrium Karbonat)
📌Fakta Penting Na2CO3
• Na+ berasal dari NaOH (basa kuat) → TIDAK terhidrolisis
• CO32− adalah basa konjugat dari HCO3− (asam lemah) → terhidrolisis satu arah sebagai basa
• Hanya ada satu reaksi, tidak ada sifat amfiprotik
Reaksi hidrolisis CO32−:
CO32− + H2O ⇌ HCO3− + OH−
🔢Perhitungan pH Na2CO3 0,1 M
Gunakan rumus hidrolisis basa biasa. Kb untuk CO32− dihitung dari Ka2 H2CO3:
✓ pH = 11,66 → Larutan bersifat BASA (C = 0,1 M)
Catatan: pH Na2CO3 bergantung pada konsentrasi, berbeda dari NaHCO3. Makin encer, pH mendekati 7.
Garam Asam (Amfiprotik) — Hidrolisis Bertingkat
A.3 Hidrolisis NaHCO3 (Natrium Bikarbonat)
📌Fakta Penting NaHCO3
• Na+ berasal dari NaOH (basa kuat) → TIDAK terhidrolisis
• HCO3− adalah anion amfiprotik → bisa bertindak sebagai asam DAN basa sekaligus
• Inilah inti dari hidrolisis bertingkat — dua kesetimbangan berjalan bersamaan
Dua reaksi hidrolisis yang terjadi bersamaan:
Reaksi 1: HCO3− sebagai BASA (menerima H+ dari air):
HCO3− + H2O ⇌ H2CO3 + OH−
Reaksi 2: HCO3− sebagai ASAM (melepas H+ ke air):
HCO3− + H2O ⇌ CO32− + H3O+
🔢Perhitungan pH NaHCO3 0,1 M
Karena Ka2 << Kb untuk HCO3−, maka reaksi hidrolisis basa lebih dominan → larutan bersifat BASA.
✓ pH = 8,35 → Larutan bersifat BASA (tidak bergantung konsentrasi)
A.4 Keunikan NaHCO3
⭐
Keunikan 1: pH tidak bergantung pada konsentrasi!
Selama suhu tetap, pH NaHCO3 selalu ≈ 8,35. Rumus pH = ½(pKa1 + pKa2) tidak mengandung variabel konsentrasi.
⭐
Keunikan 2: HCO3− adalah anion amfiprotik sejati
Bisa jadi asam (lepas H+) DAN basa (terima H+) secara bersamaan dalam larutan.
⭐
Keunikan 3: Aplikasi dalam kehidupan sehari-hari
Baking soda (NaHCO3) dipakai agar roti mengembang. Obat maag mengandung NaHCO3 untuk menetralkan asam lambung.
A.5 Perbandingan Na2CO3 vs NaHCO3
| Aspek | Na2CO3 (garam normal) | NaHCO3 (garam asam) |
| Anion | CO32− (basa biasa) | HCO3− (amfiprotik) |
| Jumlah reaksi hidrolisis | Satu arah (hanya basa) | Dua arah bersamaan |
| Reaksi dominan | CO32− + H2O ⇌ HCO3− + OH− | HCO3− + H2O ⇌ H2CO3 + OH− |
| Rumus pH | pH = 14 + ½(log Kb + log C) | pH = ½(pKa1 + pKa2) |
| Sifat larutan | Basa kuat | Basa lemah |
| pH (0,1 M) | ≈ 11,66 | ≈ 8,35 |
| pH bergantung [C]? | Ya | Tidak (unik!) |
B.1 Ionisasi H2SO3
H2SO3 juga merupakan asam dipotik, mirip dengan H2CO3.
Namun, H2SO3 memiliki Ka1 yang jauh lebih besar. Perbedaan ini akan berdampak besar!
Tahap 1 H2SO3 ⇌ H+ + HSO3−
(Ka1 = 1,5 × 10−2)
Tahap 2 HSO3− ⇌ H+ + SO32−
(Ka2 = 6,3 × 10−8)
| Reaksi | Garam | Nama Garam | Jenis |
| H2SO3 + NaOH → | NaHSO3 + H2O | Natrium bisulfit | Garam asam (amfiprotik) |
| H2SO3 + 2NaOH → | Na2SO3 + 2H2O | Natrium sulfit | Garam normal |
Garam Normal
B.2 Hidrolisis Na2SO3 (Natrium Sulfit)
📌Fakta Penting Na2SO3
• Na+ berasal dari NaOH (basa kuat) → TIDAK terhidrolisis
• SO32− adalah basa konjugat dari HSO3− → terhidrolisis satu arah sebagai basa
Reaksi hidrolisis SO32−:
SO32− + H2O ⇌ HSO3− + OH−
🔢Perhitungan pH Na2SO3 0,1 M
Kb untuk SO32− dihitung dari Ka2 H2SO3:
✓ pH = 10,10 → Larutan bersifat BASA (C = 0,1 M)
Catatan: pH Na2SO3 bergantung pada konsentrasi. Makin encer, pH semakin mendekati 7.
Garam Asam (Amfiprotik) — Hidrolisis Bertingkat
B.3 Hidrolisis NaHSO3 (Natrium Bisulfit)
⚠️Perbedaan Kritis dengan NaHCO3
• Ka1(H2SO3) = 1,5 × 10−2 → jauh lebih besar dari Ka2 = 6,3 × 10−8
• Ini berarti H2SO3 sudah cukup kuat pada ionisasi pertamanya
• Dampaknya: sifat larutan NaHSO3 akan berbeda drastis dari NaHCO3!
Dua reaksi hidrolisis HSO3−:
Reaksi 1: HSO3− sebagai BASA:
HSO3− + H2O ⇌ H2SO3 + OH− (Kb = Kw/Ka1)
Reaksi 2: HSO3− sebagai ASAM:
HSO3− + H2O ⇌ SO32− + H3O+ (Ka = Ka2)
🔢Perhitungan pH NaHSO3 0,1 M
✗ pH = 4,51 → Larutan bersifat ASAM! (tidak bergantung konsentrasi)
Mengapa asam? Karena pKa1 sangat kecil (1,82), nilai ½(pKa1+pKa2) jatuh jauh di bawah 7.
B.4 Keunikan NaHSO3
⭐
Keunikan 1: NaHSO3 bersifat ASAM meski kationnya Na+!
Na+ dari basa kuat → tidak terhidrolisis. Tapi HSO3− terlalu asam karena Ka1 H2SO3 sangat besar. Akibatnya, ionisasi asam HSO3− dominan → pH < 7.
⭐
Keunikan 2: pH juga tidak bergantung konsentrasi
pH = ½(pKa1 + pKa2) = 4,51, nilainya tetap konstan.
⭐
Keunikan 3: Kontras tajam dengan Na2SO3!
NaHSO3 → pH 4,51 (ASAM) | Na2SO3 → pH ≈ 10,10 (BASA). Penambahan 1 mol NaOH saja mengubah sifat dari ASAM ke BASA!
⭐
Keunikan 4: Digunakan sebagai pengawet makanan (E221)
Sifat asamnya membantu menghambat pertumbuhan mikroba dan jamur.
B.5 Perbandingan Na2SO3 vs NaHSO3
| Aspek | Na2SO3 (garam normal) | NaHSO3 (garam asam) |
| Anion | SO32− (basa biasa) | HSO3− (amfiprotik) |
| Jumlah reaksi | Satu arah | Dua arah bersamaan |
| Reaksi dominan | SO32− + H2O ⇌ HSO3− + OH− | HSO3− ⇌ SO32− + H+ (ionisasi asam) |
| Sifat larutan | Basa | Asam (mengejutkan!) |
| pH (0,1 M) | ≈ 10,10 | ≈ 4,51 |
| pH bergantung [C]? | Ya | Tidak |
C.1 Keistimewaan H3PO4 sebagai Asam Tripotik
H3PO4 adalah asam tripotik, yang paling kompleks di antara ketiga asam ini!
Ionisasi terjadi dalam 3 tahap:
Tahap 1 H3PO4 ⇌ H+ + H2PO4−
(Ka1 = 7,5 × 10−3)
Tahap 2 H2PO4− ⇌ H+ + HPO42−
(Ka2 = 6,2 × 10−8)
Tahap 3 HPO42− ⇌ H+ + PO43−
(Ka3 = 2,2 × 10−13)
H3PO4 + NaOH menghasilkan tiga jenis garam:
| Mol NaOH | Reaksi | Garam | Nama | Jenis |
| 1 mol | H3PO4 + NaOH → | NaH2PO4 | Natrium dihidrogen fosfat | Garam asam (amfiprotik) |
| 2 mol | H3PO4 + 2NaOH → | Na2HPO4 | Dinatrium hidrogen fosfat | Garam asam (amfiprotik) |
| 3 mol | H3PO4 + 3NaOH → | Na3PO4 | Natrium fosfat | Garam normal |
Garam Normal
C.2 Hidrolisis Na3PO4 (Natrium Fosfat)
📌Fakta Penting Na3PO4
• Na+ berasal dari NaOH (basa kuat) → TIDAK terhidrolisis
• PO43− adalah basa konjugat dari HPO42− → terhidrolisis satu arah sebagai basa
• Hidrolisis hanya satu tahap yang dominan (tahap 2 dan 3 dapat diabaikan)
Reaksi hidrolisis PO43− (tahap 1, dominan):
PO43− + H2O ⇌ HPO42− + OH−
🔢Perhitungan pH Na3PO4 0,1 M
Kb untuk PO43− dihitung dari Ka3 H3PO4. Ka3 sangat kecil → Kb sangat besar → PO43− adalah basa yang cukup kuat!
✓ pH ≈ 12,83 → Larutan bersifat BASA KUAT (C = 0,1 M)
Catatan: Kb PO43− sangat besar (≈ 0,046) karena Ka3 sangat kecil. Ini membuat Na3PO4 menjadi garam yang sangat basa — pH bergantung konsentrasi.
Garam Asam (Amfiprotik) — Hidrolisis Bertingkat
C.3 Hidrolisis NaH2PO4
📌Sifat H2PO4− (Amfiprotik)
• Sebagai BASA: H2PO4− + H2O ⇌ H3PO4 + OH−
• Sebagai ASAM: H2PO4− + H2O ⇌ HPO42− + H3O+
Reaksi ASAM lebih dominan karena Ka2 >> Kb dari H2PO4−.
🔢Perhitungan pH NaH2PO4 0,1 M
✗ pH = 4,66 → Larutan bersifat ASAM! (tidak bergantung konsentrasi)
Garam Asam (Amfiprotik) — Hidrolisis Bertingkat
C.4 Hidrolisis Na2HPO4
📌Sifat HPO42− (Amfiprotik)
• Sebagai BASA: HPO42− + H2O ⇌ H2PO4− + OH− (Kb = Kw/Ka2)
• Sebagai ASAM: HPO42− + H2O ⇌ PO43− + H3O+ (Ka3 sangat kecil!)
Reaksi BASA lebih dominan karena Ka3 = 2,2 × 10−13 sangat kecil → HPO42− hampir tidak terionisasi sebagai asam.
🔢Perhitungan pH Na2HPO4 0,1 M
✓ pH = 9,93 → Larutan bersifat BASA! (tidak bergantung konsentrasi)
C.5 Keunikan Garam-Garam Fosfat
⭐
Keunikan 1: Ada DUA garam amfiprotik berbeda sifat dari satu asam!
NaH2PO4 → ASAM (pH 4,66) | Na2HPO4 → BASA (pH 9,93). Ini tidak ditemukan pada H2CO3 maupun H2SO3.
⭐
Keunikan 2: Pola pergeseran pH yang dramatis
NaH2PO4 → 4,66 | Na2HPO4 → 9,93 | Na3PO4 → ≈12,83. Setiap penambahan NaOH meningkatkan pH secara drastis!
⭐
Keunikan 3: Sistem buffer fosfat dalam biologi
H2PO4−/HPO42− adalah buffer utama dalam sel. Menjaga pH darah sekitar 7,35–7,45.
⭐
Keunikan 4: Ka3 H3PO4 sangat kecil, Kb PO43− sangat besar
Ka3 = 2,2 × 10−13 → Kb(PO43−) ≈ 4,55 × 10−2. Itulah mengapa Na3PO4 sangat basa, dan Na2HPO4 tetap bersifat basa meski anionnya masih punya H.
| Garam | Anion | pH (0,1 M) | Sifat | Rumus pH | pH bergantung C? |
| NaH2PO4 | H2PO4− (amfiprotik) | 4,66 | Asam | ½(pKa1 + pKa2) | Tidak |
| Na2HPO4 | HPO42− (amfiprotik) | 9,93 | Basa | ½(pKa2 + pKa3) | Tidak |
| Na3PO4 | PO43− (basa biasa) | ≈12,83 | Basa kuat | ½(pKw/Ka3) via Kb | Ya |
NaHCO3
dari H2CO3
8,35
BASA
½(pKa1+pKa2)
NaHSO3
dari H2SO3
4,51
ASAM
½(pKa1+pKa2)
NaH2PO4
dari H3PO4
4,66
ASAM
½(pKa1+pKa2)
Na2HPO4
dari H3PO4
9,93
BASA
½(pKa2+pKa3)
| Aspek | NaHCO3 | NaHSO3 | NaH2PO4 | Na2HPO4 |
| Asam asal | H2CO3 | H2SO3 | H3PO4 | H3PO4 |
| Anion amfiprotik | HCO3− | HSO3− | H2PO4− | HPO42− |
| Reaksi dominan | Hidrolisis basa | Ionisasi asam | Ionisasi asam | Hidrolisis basa |
| Sifat larutan | Basa | Asam | Asam | Basa |
| pH (approx.) | 8,35 | 4,51 | 4,66 | 9,93 |
| pH bergantung [C]? | Tidak | Tidak | Tidak | Tidak |
📋Panduan Cepat
1
Hitung pH = ½(pKa(n) + pKa(n+1))
dengan n adalah tahap ionisasi yang menghasilkan anion tersebut.
2
Jika pH < 7 → larutan bersifat ASAM
Artinya: Ka dominan (ionisasi asam lebih kuat).
3
Jika pH > 7 → larutan bersifat BASA
Artinya: Kb dominan (hidrolisis basa lebih kuat).
4
pH tidak bergantung pada konsentrasi garam
Berlaku untuk semua garam amfiprotik. Untuk garam normal (Na2CO3, Na2SO3, Na3PO4), pH bergantung pada konsentrasi.
▶ RUMUS KUNCI ◀
pH = ½ (pKa(n) + pKa(n+1))
HCO3−: pH = ½(pKa1+pKa2) dari H2CO3
HSO3−: pH = ½(pKa1+pKa2) dari H2SO3
H2PO4−: pH = ½(pKa1+pKa2) dari H3PO4
HPO42−: pH = ½(pKa2+pKa3) dari H3PO4
Soal 1
Larutan NaHCO3 0,1 M atau 0,001 M: manakah yang memiliki pH lebih tinggi?
Ka1 H2CO3 = 4,3 × 10−7 ; Ka2 H2CO3 = 4,7 × 10−11
💡 Lihat Jawaban
Jawaban:
Keduanya memiliki pH yang SAMA (8,35). pH garam amfiprotik = ½(pKa1 + pKa2), sehingga tidak bergantung pada konsentrasi!
Soal 2
Mengapa NaHSO3 bersifat asam padahal Na+ berasal dari basa kuat NaOH?
💡 Lihat Jawaban
Jawaban:
Na+ memang tidak terhidrolisis. Namun Ka1(H2SO3) = 1,5 × 10−2 sangat besar, sehingga Ka2 dari HSO3− masih cukup besar relatif terhadap Kb-nya. Akibatnya ionisasi asam HSO3− lebih dominan.
pH = ½(1,82 + 7,20) = 4,51 < 7.
Soal 3
Hitunglah pH larutan Na2HPO4!
(Ka1 = 7,5×10−3, Ka2 = 6,2×10−8, Ka3 = 2,2×10−13)
💡 Lihat Jawaban
Jawaban:
pKa2 = −log(6,2×10−8) = 7,21
pKa3 = −log(2,2×10−13) = 12,66
pH = ½(7,21 + 12,66) = ½(19,87) = 9,93 → BASA ✓
Soal 4
Hitunglah pH larutan Na2CO3 0,05 M!
(Ka2 H2CO3 = 4,7 × 10−11)
💡 Lihat Jawaban
Jawaban:
Kb(CO32−) = 10−14 / 4,7×10−11 ≈ 2,13 × 10−4
[OH−] = √(2,13×10−4 × 0,05) = √(1,065×10−5) ≈ 3,26 × 10−3 M
pOH = −log(3,26×10−3) ≈ 2,49
pH = 14 − 2,49 = 11,51 → BASA ✓
Perhatikan: pH 11,51 (C=0,05 M) berbeda dari pH 11,66 (C=0,1 M) — bukti pH Na2CO3 bergantung konsentrasi.
Soal 5
Urutkan pH dari rendah ke tinggi: Na2CO3, NaHCO3, NaHSO3, Na2SO3, NaH2PO4, Na2HPO4, Na3PO4 (semua 0,1 M)
💡 Lihat Jawaban
Jawaban (dari asam ke basa):
NaHSO3 (4,51) < NaH2PO4 (4,66) < NaHCO3 (8,35) < Na2HPO4 (9,93) < Na2SO3 (≈10,10) < Na2CO3 (≈11,66) < Na3PO4 (≈12,83)
:root { --blue: #1F4E79; --blue-m: #2E75B6; --blue-l: #BDD7EE; --blue-p: #E8F4F8; --teal: #1F6B75; --teal-l: #C6EFCE; --teal-p: #EAF6F7; --orange: #843C0C; --orange-l: #FCE4D6; --purple: #4B0082; --purple-l: #E8E0F0; --gray: #595959; --gray-l: #F2F2F2; --red: #9C0006; --red-l: #FFC7CE; --green: #1F6B35; --green-l: #E2F0E8; }
/* Chemistry sub/sup - avoids browser sub rendering gaps */
.cs, .cp { font-size: 0.72em; position: relative; line-height: 0; display: inline-block; vertical-align: baseline; }
.cs { top: 0.32em; }
.cp { top: -0.45em; }
.calculator *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
.badges { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 24px; position: relative; }
.badge { background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3); border-radius: 20px; padding: 4px 16px; font-size: .82rem; font-weight: 700; letter-spacing: .5px; }
/* SECTION HEADERS */
.section-header { display: flex; align-items: center; gap: 14px; background: var(--blue); color: #fff; padding: 14px 20px; border-radius: 10px; margin: 40px 0 20px; font-family: 'Lora', serif; font-size: 1.25rem; font-weight: 700; box-shadow: 0 4px 14px rgba(31,78,121,.3); }
.sh-text { display: inline; }
.sh-text .cs { top: 0.38em; }
.sh-text .cp { top: -0.5em; }
.section-header.teal { background: var(--teal); box-shadow: 0 4px 14px rgba(31,107,117,.3); }
.section-header.gray { background: var(--gray); box-shadow: 0 4px 14px rgba(89,89,89,.3); }
.section-header.purple { background: var(--purple); box-shadow: 0 4px 14px rgba(75,0,130,.3); }
.section-header.green { background: var(--green); box-shadow: 0 4px 14px rgba(31,107,53,.3); }
.section-header .icon { font-size: 1.4rem; }
.subsection-title { font-family: 'Lora', serif; font-size: 1.05rem; font-weight: 700; color: var(--blue); margin: 28px 0 10px; padding-left: 12px; border-left: 4px solid var(--blue); }
.subsection-title.teal { color: var(--teal); border-color: var(--teal); }
.subsection-title.gray { color: var(--gray); border-color: var(--gray); }
.subsection-title.purple { color: var(--purple); border-color: var(--purple); }
/* INFO BOXES */
.box { border-radius: 10px; padding: 14px 18px; margin: 14px 0; border-left: 5px solid; }
.box.blue { background: var(--blue-p); border-color: var(--blue); }
.box.teal { background: var(--teal-p); border-color: var(--teal); }
.box.orange { background: var(--orange-l); border-color: var(--orange); }
.box.purple { background: var(--purple-l); border-color: var(--purple); }
.box.gray { background: var(--gray-l); border-color: var(--gray); }
.box.red { background: var(--red-l); border-color: var(--red); }
.box.green { background: var(--green-l); border-color: var(--green); }
.box-title { font-size: 0; font-weight: 800; margin-bottom: 10px; display: flex; align-items: center; }
.box-title .bt-icon { font-size: .9rem; margin-right: 8px; }
.box-title .bt-text { font-size: .9rem; font-weight: 800; letter-spacing: .5px; }
.box.blue .box-title { color: var(--blue); }
.box.teal .box-title { color: var(--teal); }
.box.orange .box-title { color: var(--orange); }
.box.purple .box-title { color: var(--purple); }
.box.gray .box-title { color: var(--gray); }
.box.red .box-title { color: var(--red); }
.box.green .box-title { color: var(--green); }
/* FORMULA BLOCKS */
.formula-block { background: #FFFBF0; border: 1.5px dashed #C8A84B; border-radius: 8px; padding: 10px; margin: 10px 0; text-align: center; font-family: 'Roboto Condensed'; font-size: 1rem; font-weight: 600; color: #5c3a00; line-height: 1.8; }
.formula-block.big { font-size: 1.1rem; background: linear-gradient(135deg, #fff8e8, #fff3d5); border-color: var(--orange); box-shadow: 0 2px 8px rgba(132,60,12,.1); padding: 10px; }
.eq-label { display: inline-block; background: var(--orange); color: #fff; font-size: .7rem; padding: 2px 8px; border-radius: 4px; margin-bottom: 6px; font-family: 'Nunito', sans-serif; font-weight: 700; letter-spacing: 1px; }
/* TABLES */
.table-wrap { overflow-x: auto; margin: 14px 0; border-radius: 3px; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
table { width: 100%; border-collapse: collapse; min-width: 500px; white-space: nowrap; }
thead th { background: var(--blue); color: #fff; padding: 11px 14px!important; font-size: .85rem; font-weight: 700; text-align: left; letter-spacing: .3px; }
thead.teal th { background: var(--teal); }
thead.gray th { background: var(--gray); }
thead.purple th { background: var(--purple); }
thead.green th { background: var(--green); }
tbody tr:nth-child(odd) { background: #fff; }
tbody tr:nth-child(even) { background: #c7cdd4; }
tbody td { padding: 9px 14px!important; font-size: .88rem; border-bottom: 1px solid #E0E8F0; }
tbody tr:last-child td { border-bottom: none; }
/* KEUNIKAN */
.keunikan-item { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dashed rgba(0,0,0,.1); }
.keunikan-item:last-child { border-bottom: none; }
.keunikan-star { font-size: 1.3rem; flex-shrink: 0; line-height: 1.4; }
.keunikan-content strong { display: block; margin-bottom: 3px; }
/* SOAL */
.soal-block { background: #fff; border: 2px solid var(--blue-l); border-radius: 10px; padding: 18px 22px; margin: 14px 0; box-shadow: 0 2px 8px rgba(0,0,0,.05); }
.soal-label { font-weight: 800; color: var(--blue); font-size: .85rem; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 8px; }
.soal-q { font-weight: 600; margin-bottom: 10px; }
.jawaban { background: var(--teal-p); border-radius: 6px; padding: 10px 14px; margin-top: 10px; font-size: .9rem; color: var(--teal); border-left: 3px solid var(--teal); }
/* RUMUS KUNCI */
.rumus-kunci { background: linear-gradient(135deg, var(--blue), var(--blue-m)); color: #fff; border-radius: 12px; padding: 8px; margin: 20px 0; text-align: center; box-shadow: 0 4px 20px rgba(31,78,121,.35); }
.rumus-kunci .label { font-size: .85rem; opacity: .8; margin-bottom: 4px; letter-spacing: 1px; }
.rumus-kunci .formula-text { font-family: 'Source Code Pro', monospace; font-size: 1.2rem; font-weight: 600; margin: 12px 0; background: rgba(255,255,255,.12); border-radius: 8px; padding: 12px 20px; display: inline-block; }
.rumus-kunci .note { font-size: 1rem; opacity: .85; margin-top: 10px; padding: 10px; }
/* SUMMARY GRID */
.summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 10px; margin: 20px 0; }
.summary-card { background: #fff; border-radius: 10px; padding: 18px; border-top: 4px solid var(--blue); box-shadow: 0 2px 10px rgba(0,0,0,.07); text-align: center; }
.summary-card.teal { border-color: var(--teal); }
.summary-card.orange { border-color: var(--orange); }
.summary-card.purple { border-color: var(--purple); }
.garam-name { font-family: 'Source Code Pro', monospace; font-size: 1rem; font-weight: 700; margin-bottom: 8px; }
.summary-card.teal .garam-name { color: var(--teal); }
.summary-card.orange .garam-name { color: var(--orange); }
.summary-card.purple .garam-name { color: var(--purple); }
.ph-val { font-size: 1.4rem; font-weight: 800; line-height: 1; margin: 8px 0; }
.summary-card.teal .ph-val { color: var(--teal); }
.summary-card.orange .ph-val { color: var(--red); }
.summary-card.purple .ph-val { color: var(--purple); }
.sifat-tag { display: inline-block; padding: 3px 12px; border-radius: 20px; font-size: .78rem; font-weight: 700; letter-spacing: .5px; }
.tag-basa { background: var(--teal-l); color: var(--teal); }
.tag-asam { background: var(--red-l); color: var(--red); }
.tag-basa-kuat { background: var(--blue-l); color: var(--blue); }
/* RULE STEPS */
.rule-step { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid rgba(31,78,121,.1); }
.rule-step:last-child { border-bottom: none; }
.rule-num { background: var(--blue); color: #fff; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .85rem; flex-shrink: 0; }
/* FOOTER */
.footer { text-align: center; padding: 8px 1px; font-size: .82rem; color: #999; border-top: 1px solid #E0E0E0; margin-top: 4px; font-style: italic; }
/* UTILITY */
.c-teal { color: var(--teal); }
.c-red { color: var(--red); }
.c-blue { color: var(--blue); }
.fw-bold { font-weight: 700; }
.mt-8 { margin-top: 8px; }
.mt-10 { margin-top: 10px; }
.mt-12 { margin-top: 12px; }
.mt-16 { margin-top: 16px; }
.mt-18 { margin-top: 18px; }
.fs-sm { font-size: .88rem; }
.fs-xs { font-size: .75rem; }
.fi { font-style: italic; }
/* Details/summary jawaban */
details.jawaban-toggle { margin-top: 10px; }
details.jawaban-toggle summary { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-weight: 700; font-size: .85rem; color: var(--teal); background: var(--teal-p); border: 1.5px solid var(--teal); border-radius: 6px; padding: 6px 14px; user-select: none; list-style: none; transition: background .15s; }
details.jawaban-toggle summary::-webkit-details-marker { display: none; }
details.jawaban-toggle summary::marker { display: none; }
details.jawaban-toggle summary:hover { background: var(--teal-l); }
details.jawaban-toggle[open] summary { border-radius: 6px 6px 0 0; }
details.jawaban-toggle[open] .jawaban { border-radius: 0 6px 6px 6px; margin-top: 0; }
/* PEMBATAS ANTARA GARAM NORMAL DAN BERTINGKAT */
.garam-divider { display: flex; align-items: center; gap: 12px; margin: 24px 0 16px; font-size: .8rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--gray); }
.garam-divider::before, .garam-divider::after { content: ''; flex: 1; height: 1px; background: #ccc; }
Tidak ada komentar:
Posting Komentar