/* Gaya fitur A1–A6, P1–P7, S1–S3. Memakai token warna dari clay.css. */
.redup { color: var(--muted); }
.peringatan { color: var(--akhir-pekan); font-weight: 700; }
.klay.bahasa { width: 44px; padding: 0; font-family: Manrope, sans-serif; font-weight: 800; font-size: 13px; }
.klay.lonceng { position: relative; width: 44px; padding: 0; }
.klay .angka { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px;
  background: var(--brand); color: #fff; font-size: 11px; font-weight: 800; display: inline-grid; place-items: center; box-shadow: 0 0 0 2px var(--bg); }
.tab-bar button .angka { position: static; box-shadow: none; }
.riwayat.notif li.belum { box-shadow: inset 3px 0 0 var(--brand); }
.riwayat li .tautan-kecil { display: block; margin-top: 4px; border: 0; background: none; padding: 0; color: var(--open-t); font-weight: 700; font-size: 11.5px; cursor: pointer; }
.riwayat li .wa { display: block; margin-top: 6px; padding: 8px 10px; border-radius: 12px 12px 12px 4px; background: #dcf8c6; color: #1f3b12; font-size: 12px; }
.gel-tombol { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
td.sel.lebih > span { outline: 2px solid var(--akhir-pekan); outline-offset: -2px; }
.nama a { color: inherit; text-decoration: none; }
.nama a:hover { color: var(--brand); text-decoration: underline; }
.dlg.lebar { width: min(920px, 100%); }
.centang { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; }
.centang input { width: 18px; height: 18px; accent-color: var(--tombol); }
.baris3 { display: grid; gap: 12px; grid-template-columns: 1fr; }
.banner { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 14px; margin: 4px 0 8px; border-radius: 18px;
  background: var(--minta); color: var(--minta-t); box-shadow: var(--bayang-kecil); font-size: 13px; }
.banner > span:nth-child(2) { flex: 1; min-width: 200px; }
.sw { width: 20px; height: 20px; flex: none; border-radius: 6px; box-shadow: var(--ubin); border: 1px solid var(--garis); }
.tombol-tumpuk { display: flex; flex-direction: column; gap: 5px; align-items: stretch; }
.judul-bagian { font-family: Manrope, sans-serif; font-size: 18px; font-weight: 800; margin: 6px 4px 10px; }
.pilih.kecil select { min-height: 34px; border-radius: 12px; font-size: 12.5px; padding: 0 30px 0 10px; }
.pilih.kecil::after { right: 12px; width: 6px; height: 6px; }
.daftar-sel li.redup, .daftar-booking li.redup { opacity: .55; }
.daftar-booking li.kosong, .hasil-cari li.kosong { display: block; }
.daftar-sel li .tengah small { display: block; margin-top: 2px; }

/* A2 cari kosong */
.cari-form { display: grid; gap: 12px; }
.cari-grid { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.hitung-hasil { margin: 4px 6px 8px; color: var(--muted); font-weight: 700; font-size: 13px; }
.hasil-cari { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.kartu-hasil { display: grid; grid-template-columns: auto 1fr; gap: 10px 14px; align-items: center; background: var(--surface); border-radius: 22px; box-shadow: var(--bayang); padding: 12px 14px; }
.tgl-hasil { width: 54px; height: 58px; border-radius: 16px; background: var(--open-bg); color: var(--open-t); display: grid; place-items: center; align-content: center; box-shadow: var(--ubin); }
.tgl-hasil b { font-family: Manrope, sans-serif; font-size: 21px; line-height: 1; }
.tgl-hasil small { font-weight: 800; font-size: 11px; text-transform: uppercase; }
.isi-hasil { min-width: 0; display: grid; gap: 2px; }
.isi-hasil small { color: var(--muted); font-size: 12px; }
.nama-hasil { font-family: Manrope, sans-serif; font-weight: 800; font-size: 15px; color: var(--ink); text-decoration: none; }
.harga-hasil { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.harga-hasil b { font-family: Manrope, sans-serif; font-size: 17px; }
.harga-hasil small { color: var(--muted); font-weight: 700; }
.tombol-hasil { margin-left: auto; display: flex; gap: 6px; }

/* A1 penawaran */
.baris-kabin { display: grid; grid-template-columns: 1fr 76px 76px auto; gap: 8px; align-items: end; margin-bottom: 8px; }
.baris-kabin [data-hapus] { min-height: 48px; }
.aksi-penawaran { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; margin-top: 12px; }
.penawaran form.kartu { display: grid; gap: 12px; align-content: start; }
.kertas { background: #fffdf9; color: #2c2238; border: 1.5px dashed var(--garis); }
.kertas-kepala { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 2px solid #f1eefa; }
.kertas-kepala b { font-family: Manrope, sans-serif; font-size: 16px; }
.kertas-kepala small { color: #756b82; }
.kertas h2 { color: #2c2238; }
.kertas-kapal { margin: 4px 0; font-weight: 700; }
.kertas-kabin { margin: 4px 0 12px; color: #5f5570; }
.kertas-harga, .kertas-total { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 14px; border-radius: 16px; background: #f4f0fb; margin-bottom: 8px; }
.kertas-harga b { font-family: Manrope, sans-serif; font-size: 26px; color: #2c2238; }
.kertas-total b { font-family: Manrope, sans-serif; font-size: 17px; }
.kertas .catatan-kecil { color: #756b82; }
.wa-teks { width: 100%; min-height: 220px; border: 0; border-radius: 16px; padding: 12px; background: var(--isian); box-shadow: var(--cekung); font-size: 13px; color: var(--ink); }

/* A4 detail kapal */
.pahlawan-kapal { display: grid; gap: 16px; }
.pahlawan-kapal .masuk-laut { margin: 0; height: 170px; }
.pahlawan-kapal .masuk-laut .kp { width: 170px; margin-left: -85px; }
.itin { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.itin li { display: grid; grid-template-columns: 64px 1fr; gap: 10px; padding: 10px 12px; border-radius: 14px; background: var(--isian); font-size: 13px; }
.itin b { color: var(--open-t); }
.chips-fas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.daftar-sel.berangkat li > span:nth-child(2) { flex: 1; min-width: 0; font-size: 13px; }
.daftar-sel.berangkat small { display: block; color: var(--muted); font-size: 12px; }
.kartu h2 small { font-family: "DM Sans", sans-serif; font-size: 12px; font-weight: 600; }

/* P1 pembayaran, P2 manifest, P3 trip */
.ringkas-bayar { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 4px 0 12px; }
.ringkas-bayar div { padding: 10px 12px; border-radius: 14px; background: var(--isian); display: grid; gap: 2px; }
.ringkas-bayar small { color: var(--muted); font-weight: 700; font-size: 11.5px; }
.ringkas-bayar b { font-family: Manrope, sans-serif; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gulir-x { overflow-x: auto; margin: 0 -4px 10px; }
.tabel-manifest { min-width: 760px; }
.tabel-manifest input { width: 100%; min-width: 70px; border: 0; border-radius: 10px; min-height: 36px; padding: 0 8px; background: var(--isian); box-shadow: var(--cekung); color: var(--ink); font-size: 13px; }
.cetak-saja { display: none; }

/* P5 laporan -- satu seri = satu warna; angka & label pakai warna teks */
.bar-laporan { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 12px; }
.bar-laporan strong { font-family: Manrope, sans-serif; font-size: 17px; font-weight: 800; min-width: 130px; text-align: center; }
.bar-laporan .klay { width: 44px; padding: 0; }
.batang-h { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 2px; }
.batang-h li { display: grid; grid-template-columns: minmax(90px, 34%) 1fr auto; gap: 10px; align-items: center; padding: 5px 4px; border-radius: 10px; font-size: 12.5px; }
.batang-h li:hover { background: var(--isian); }
.batang-h .lbl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.batang-h .trek { height: 14px; }
.batang-h .isi { display: block; height: 100%; min-width: 2px; border-radius: 0 4px 4px 0; background: var(--open-t); }
.batang-h .nil { font-variant-numeric: tabular-nums; color: var(--muted); font-weight: 700; min-width: 42px; text-align: right; }
.batang-v { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; height: 220px; padding: 8px 2px 0; border-bottom: 1.5px solid var(--garis); }
.batang-v .kol { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; gap: 4px; position: relative; }
.batang-v .trek { flex: 1; width: 100%; display: flex; align-items: flex-end; justify-content: center; }
.batang-v .isi { width: 60%; max-width: 46px; min-height: 2px; border-radius: 4px 4px 0 0; background: var(--open-t); }
.batang-v .kol:hover .isi { filter: brightness(1.15); }
.batang-v .nil { font-size: 11.5px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.batang-v .lbl { position: absolute; bottom: -22px; font-size: 11.5px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.grafik [data-v="grafik"] { padding-bottom: 24px; }
.tip-grafik { position: fixed; z-index: 95; pointer-events: none; background: var(--tombol); color: var(--tombol-t); padding: 7px 10px; border-radius: 10px; font-size: 12.5px; font-weight: 700; box-shadow: var(--bayang); }
.tabel-data { margin-top: 4px; }

@media (min-width: 768px) {
  .cari-grid { grid-template-columns: 110px 1fr 1fr 1fr 1fr 1fr; align-items: end; }
  .cari-form { grid-template-columns: 1fr auto; align-items: end; }
  .kartu-hasil { grid-template-columns: auto 1fr auto; }
  .harga-hasil { grid-column: auto; flex-direction: column; align-items: flex-end; text-align: right; }
  .tombol-hasil { margin-left: 0; }
  .baris3 { grid-template-columns: repeat(3, 1fr); }
  .ringkas-bayar { grid-template-columns: repeat(4, 1fr); }
  .pahlawan-kapal { grid-template-columns: 340px 1fr; align-items: center; }
}

/* ---------- cetak: penawaran (A1) & manifest (P2) ---------- */
@media print {
  @page { margin: 14mm; }
  body { background: #fff !important; color: #000; }
  .glow, .toast, .dlg-tirai { display: none !important; }
  body * { visibility: hidden; }
  .kertas, .kertas * { visibility: visible; }
  .kertas { position: absolute; left: 0; top: 0; width: 100%; box-shadow: none !important; border: 0; animation: none !important; }
  body.mode-cetak-manifest #cetak-manifest, body.mode-cetak-manifest #cetak-manifest * { visibility: visible; }
  body.mode-cetak-manifest #cetak-manifest { display: block; position: absolute; left: 0; top: 0; width: 100%; font-size: 11pt; line-height: 1.4; }
  .tabel-cetak { width: 100%; border-collapse: collapse; margin: 8px 0; }
  .tabel-cetak th, .tabel-cetak td { border: 1px solid #999; padding: 4px 6px; text-align: left; font-size: 10pt; }
}

/* form dua/tiga kolom di luar dialog juga */
.baris2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.kartu > .baris2, .kartu form .baris2 { margin-bottom: 4px; }
/* cari kosong: chip kelas & harga */
.isi-hasil .jenis { justify-self: start; }
.nilai-hasil { display: inline-flex; align-items: baseline; gap: 2px; }

/* ---------- fitur tambahan (Okt 2026): allotment, promo, add-on, staf, konflik, dokumen, link tamu ---------- */
.ini-b.allot { background: var(--pilih); color: var(--pilih-t); }
.ini-b.promo { background: var(--brand); color: #3a1200; }
td.sel.promo > span { position: relative; }
td.sel.promo > span::after { content: "%"; position: absolute; top: -5px; right: -5px; width: 15px; height: 15px; border-radius: 99px; background: var(--brand); color: #3a1200;
  font-size: 9.5px; font-weight: 800; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--surface); }
.legenda span.promo-leg::before { background: var(--brand); border-radius: 99px; }
.chip-staf .ini-b { font-size: 11px; padding: 2px 6px; }
.harga-charter { margin: 4px 0 10px; }
.harga-charter input { min-height: 40px; }
.addon-pilih { display: grid; gap: 6px; }
.addon-baris { display: grid; grid-template-columns: auto 1fr 70px; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 14px; background: var(--isian); font-size: 13px; font-weight: 600; }
.addon-baris small { display: block; color: var(--muted); font-weight: 600; font-size: 11.5px; }
.addon-baris input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--tombol); }
.addon-baris input[type=number], .isian-kecil { width: 70px; border: 0; border-radius: 10px; min-height: 34px; padding: 0 8px; background: var(--surface); box-shadow: var(--cekung); color: var(--ink); font: inherit; }
.daftar-centang { display: grid; gap: 8px; margin: 4px 0 10px; }
.daftar-centang .isian-kecil { width: 56px; margin-left: 4px; }
.matriks th, .matriks td { text-align: center; white-space: nowrap; }
.matriks th:first-child, .matriks td:first-child { text-align: left; }
.konflik { margin: 10px 0 12px; padding: 10px; border-radius: 18px; background: color-mix(in srgb, var(--penuh) 22%, var(--surface)); }
.konflik .subjudul { margin-top: 0; }
.baris-konflik { flex-direction: column; align-items: stretch !important; }
.dua-versi { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 6px; }
.versi { display: grid; gap: 2px; padding: 8px 10px 8px 34px; border-radius: 12px; background: var(--surface); font-size: 12.5px; position: relative; cursor: pointer; box-shadow: var(--ubin); }
.versi input { position: absolute; left: 10px; top: 10px; width: 16px; height: 16px; accent-color: var(--tombol); }
.versi small { color: var(--muted); font-weight: 800; text-transform: uppercase; font-size: 10.5px; letter-spacing: .03em; }
.versi.dipilih { outline: 2px solid var(--tombol); }
.wa-teks.link-teks { min-height: 64px; word-break: break-all; }
.wadah.sempit { max-width: 760px; }
.tamu-kartu { border: 0; display: grid; gap: 10px; margin: 0 0 12px; }
.tamu-kartu legend { font-family: Manrope, sans-serif; font-weight: 800; font-size: 15px; padding: 0; float: left; width: 100%; margin-bottom: 4px; }
.sukses { padding: 10px 14px; border-radius: 14px; background: var(--tersedia); color: var(--tersedia-t); font-weight: 700; }
.cari-grid.tiga { grid-template-columns: 1fr 1fr; }
.cari-grid.tiga > :first-child { grid-column: 1 / -1; }

/* invoice, kwitansi, rekap */
.kertas-dok { background: #fffdf9; color: #2c2238; border-radius: 18px; padding: 18px; border: 1.5px dashed var(--garis); margin-bottom: 12px; max-height: 60vh; overflow: auto; }
.dok { font-size: 13px; line-height: 1.45; color: #2c2238; }
.dok-kepala { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 10px; margin-bottom: 12px; border-bottom: 2px solid #ece6f4; }
.dok-kepala b { font-family: Manrope, sans-serif; font-size: 15px; display: block; }
.dok-kepala small { color: #756b82; }
.dok-kepala h2 { margin: 0 0 2px; font-family: Manrope, sans-serif; letter-spacing: .06em; color: #2c2238; }
.dok-kepala .kanan { text-align: right; }
.dok-kepada { display: grid; gap: 1px; margin-bottom: 10px; }
.dok-kepada small { color: #756b82; }
.dok-tabel, .dok-kw { width: 100%; border-collapse: collapse; margin: 6px 0 10px; }
.dok-tabel th, .dok-tabel td { border-bottom: 1px solid #ece6f4; padding: 6px 4px; text-align: left; }
.dok-tabel .kanan { text-align: right; white-space: nowrap; }
.dok-tabel tr.tebal td { font-weight: 800; border-bottom: 2px solid #c9bfd8; }
.dok-kw td { padding: 6px 4px; vertical-align: top; }
.dok-kw td:first-child { width: 150px; color: #756b82; }
.dok-ttd { text-align: right; margin-top: 18px; }
.dok-kecil { font-size: 11px; color: #756b82; }

@media (min-width: 768px) {
  .cari-grid.tiga { grid-template-columns: 140px 1fr 1fr; }
  .cari-grid.tiga > :first-child { grid-column: auto; }
}
@media (max-width: 520px) {
  .dua-versi { grid-template-columns: 1fr; }
  .addon-baris { grid-template-columns: auto 1fr 58px; }
}
@media print {
  body.mode-cetak-dok #cetak-dok, body.mode-cetak-dok #cetak-dok * { visibility: visible; }
  body.mode-cetak-dok #cetak-dok { display: block; position: absolute; left: 0; top: 0; width: 100%; }
  body.mode-cetak-dok .kertas { visibility: hidden; }
}

/* ikon kapal PNG (aset Angga 2026-10-05); SVG lama = assets/img/cadangan/, dipakai otomatis kalau PNG gagal dimuat */
.merek .logo img { width: 36px; height: auto; display: block; filter: drop-shadow(0 2px 2px rgba(60, 40, 80, .18)); }
.merek .logo img[src$=".svg"] { width: 30px; }
.masuk-laut { height: 170px; }
.masuk-laut img.kp { width: 150px; margin-left: -75px; bottom: 6px; filter: drop-shadow(0 6px 8px rgba(40, 30, 70, .22)); }
.masuk-laut img.kp[src$=".svg"] { width: 140px; margin-left: -70px; bottom: 14px; filter: none; }
.pahlawan-kapal .masuk-laut { height: 200px; }
.pahlawan-kapal .masuk-laut img.kp { width: 190px; margin-left: -95px; }
.merek.tampil .teks { display: block; }  /* papan tamu white-label: nama travel agen tetap terlihat di HP */
