/*
 * PURPOSE: Menentukan gaya visual untuk percakapan.
 * LAYER: Style.
 * DEPENDS ON: Struktur HTML dan kelas komponen yang memakai stylesheet ini.
 * USED BY: Dokumen aplikasi dan komponen yang menggunakan kelas gaya ini.
 * BOUNDARY: Hanya presentasi visual; tidak menentukan kontrak data atau perilaku aplikasi.
*/
.tulis {
  display: grid;
  gap: 8px;
}

.tulis .isian--panjang {
  min-height: 72px;
}

.tulis--toa .isian--panjang {
  border-color: var(--utama);
}

.tulis__kaki {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.tulis__alat {
  display: flex;
  align-items: center;
  gap: 2px;
}

.tulis__ikon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--tinta-redup);
  cursor: pointer;
}

.tulis__ikon:hover {
  background: var(--netral);
  color: inherit;
}

.tulis__ikon--aktif {
  color: var(--utama);
}

.tulis__ikon--buka {
  background: var(--netral);
}

.tulis__petak {
  display: grid;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--garis);
}

.tulis__jangkar {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.tulis__lepas {
  padding: 0 4px;
  border: 0;
  background: none;
  color: var(--tinta-redup);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.post__deret {
  display: grid;
  gap: 8px;
}

.post {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--garis);
  border-radius: var(--sudut);
  background: var(--kertas);
}

.post__utama {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--garis);
}

.post__utama > .post__kepala,
.post__utama > .riwayat-job__kepala {
  grid-column: 1 / -1;
}

.post__badan {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.post__titik {
  position: relative;
  width: 22px;
  height: 32px;
  margin: 0 -4px -6px 0;
}

.post__titik > .aksi-kartu {
  position: absolute;
  right: 0;
  bottom: 0;
  flex-wrap: nowrap;
  width: max-content;
  max-width: none;
}

.post__kepala {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.post__nama {
  overflow: hidden;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.post__toa {
  display: inline-flex;
  flex: none;
  color: var(--utama);
}

.post__waktu {
  flex: none;
  margin-left: auto;
  color: var(--tinta-redup);
  font-size: 0.75rem;
}

.post__jangkar {
  overflow: hidden;
  padding: 4px 8px;
  border-radius: 8px;
  background: var(--netral);
  color: var(--tinta-redup);
  font-size: 0.8125rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.post__jangkar--tutup {
  font-style: italic;
}

.post__isi {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  margin: 0;
  overflow: hidden;
  white-space: pre-wrap;
  word-break: break-word;
}

.post__open,
.post__reply-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.post__open { margin-left: auto; font-weight: 600; }
.post__reply-link { color: var(--tinta); font-size: .8125rem; font-weight: 600; text-underline-offset: 3px; }
.post__reply-link:hover { text-decoration: underline; }
.post__reply-link:disabled { opacity: .5; cursor: default; text-decoration: none; }
.post__reply-link--kecil { padding: 2px 0; color: var(--tinta-redup); font-size: .75rem; }
.post__reply-link--kecil:hover { color: var(--tinta); }

.post__previews {
  display: grid;
  margin: 3px -12px -10px;
  border-top: 1px solid var(--garis);
  background: var(--netral);
}

.post__preview { padding: 9px 12px; }
.post__preview + .post__preview { border-top: 1px solid var(--garis); }
.post__preview p { margin: 5px 0 2px; white-space: pre-wrap; word-break: break-word; }

.balas-kotak {
  display: grid;
  gap: 8px;
}
.balas-kotak .isian--panjang { min-height: 64px; }
.balas-kotak > .chip { justify-self: start; }
.balas-kotak__kaki { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }

.talk__anchor { display:flex; gap:.6rem; align-items:center; padding:.75rem; border-radius:.75rem; background:var(--netral); }
.talk__anchor--hidden { color:var(--redup, #666); }
.talk__messages { display:grid; gap:.65rem; margin:1rem 0; }
.talk__message { padding:.75rem; border-radius:.8rem; background:var(--netral); }
.talk__message p { margin:.3rem 0 0; white-space:pre-wrap; word-break:break-word; }

.talk__kepala {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.talk__kepala small {
  flex: none;
  margin-left: auto;
  color: var(--tinta-redup);
  font-size: 0.75rem;
}

.balasan {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
}

.balasan__badan {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.balasan__kepala {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  line-height: 24px;
}

.balasan__kepala strong {
  overflow: hidden;
  font-size: .875rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.balasan__kepala small {
  flex: none;
  margin-left: auto;
  color: var(--tinta-redup);
  font-size: .75rem;
}

.balasan .pesan-teks {
  font-size: .9375rem;
  line-height: 1.45;
}

.balasan__aksi {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 24px;
}

.balasan__balas {
  margin-left: auto;
}

.balasan__badan > .balas-kotak {
  margin: 4px 0 2px;
}

.balasan__anak {
  display: grid;
  gap: 14px;
  margin-top: 10px;
}

.balasan__lagi {
  justify-self: center;
}

.popup__isi.thread-level {
  gap: 0;
  padding: 0;

  overflow: hidden;
}

.thread-level__kepala {
  position: relative;
  flex: none;
  display: grid;
  gap: 8px;
  max-height: 42%;
  overflow: auto;
  padding: 14px 46px 14px 14px;
  border-bottom: 1px solid var(--garis);
}
.thread-level__tutup { position: absolute; top: 8px; right: 10px; width: 32px; height: 32px; border: 0; background: none; color: inherit; font-size: 1.4rem; cursor: pointer; }
.thread-level__post { margin: 0; white-space: pre-wrap; word-break: break-word; }
.thread-level__feed { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: .875rem; }
.thread-level__isi { flex: 1 1 auto; min-height: 0; overflow: auto; display: grid; align-content: start; gap: 8px; padding: 12px; }
.thread-level__kaki { flex: none; padding: 10px 12px; border-top: 1px solid var(--garis); background: var(--kertas); }

.talk__message--utama {
  position: sticky;
  top: 0;
  z-index: 2;
  border-bottom: 1px solid var(--garis);
  background: var(--kertas);
}

.balas-kotak__kaki .tulis__alat {
  margin-right: auto;
}

.post__chain {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 5px;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--netral);
  color: var(--tinta-redup);
  font-size: .75rem;
}

.job-chain {
  flex: none;
  display: grid;
  gap: 8px;
  max-height: 38%;
  overflow: auto;
  padding: 10px 12px;
  border-bottom: 1px solid var(--garis);
  background: var(--netral);
}

.job-chain__kepala,
.job-chain__baris {
  display: flex;
  align-items: center;
  gap: 7px;
}

.job-chain__kepala {
  justify-content: space-between;
}

.job-chain__tree,
.job-chain__children {
  display: grid;
  gap: 7px;
}

.job-chain__children {
  margin: 7px 0 0 14px;
  padding-left: 9px;
  border-left: 2px solid var(--garis);
}

.job-chain__job {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 8px;
  padding: 8px;
  border: 1px solid var(--garis);
  border-radius: 10px;
  background: var(--kertas);
}

.job-chain__baris {
  min-width: 0;
}

.job-chain__baris strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.job-chain__orang {
  grid-column: 1;
  color: var(--tinta-redup);
  font-size: .75rem;
}

.job-chain__job > .tombol {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}

.tulis__sebut {
  display: flex;
  flex-direction: column;
  max-height: 210px;
  overflow-y: auto;
  margin-top: 4px;
  border: 1px solid var(--garis);
  border-radius: 10px;
  background: var(--kertas);
}

.tulis__sebut-butir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border: 0;
  border-bottom: 1px solid var(--garis);
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.tulis__sebut-butir:last-child {
  border-bottom: 0;
}

.tulis__sebut-butir:hover {
  background: var(--netral);
}

.tulis__sebut-nama {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tulis__sebutan {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.tulis__sebutan-chip {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.tulis__lampiran {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}

.tulis__unggah {
  margin-top: 6px;
}

.sebutan-tautan {
  display: inline;
  padding: 0;
  border: 0;
  background: none;
  color: var(--utama);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.pesan-teks {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.thread-level__jangkar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.post__jangkar-buka {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.riwayat-aktif { padding: 8px 0 24px; }
.riwayat-aktif > h2 { margin: 12px 0 16px; font-size: 1.1rem; }
.riwayat-job__asal { display: flex; flex-direction: column; align-items: center; }
.riwayat-job__asal::after { content: ""; width: 1px; height: 10px; background: var(--garis); }
.riwayat-job__asal button {
  max-width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--garis);
  border-radius: 8px;
  background: var(--kertas);
  color: var(--tinta);
  font: inherit;
  font-size: .8rem;
  cursor: pointer;
}
.riwayat-job__kepala { display: flex; align-items: center; gap: 6px; }
.riwayat-job__status { margin-left: auto; }
.riwayat-job__nama { min-width: 0; overflow-wrap: anywhere; }
.riwayat-job__bodytext { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.riwayat-job__kepala + .post__badan { padding-top: 4px; }
.riwayat-job__buka { display: flex; width: 100%; min-width: 0; flex-direction: column; gap: 4px; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; overflow-wrap: anywhere; cursor: pointer; }
.riwayat-job__buka strong { font-size: 1rem; }
.riwayat-job__buka span { color: var(--tinta-redup); font-size: .9375rem; }
.komentar-feed { display: grid; gap: 14px; }
.komentar-feed__jumlah { justify-self: center; color: var(--tinta-redup); font-size: .75rem; }
.komentar-feed__more { justify-self: center; }
.komentar-feed__kontrol { display: flex; align-items: center; gap: 12px; }
.komentar-feed__waktu { color: var(--tinta-redup); font-size: .8rem; }
.komentar-feed__tambah { margin-left: auto; }
.post__titik .tombol-titik .ikon { width: 18px; height: 18px; }
