/* ==========================================================================
   ARG SUITE — FINANCE ABSEN

   Hanya bagian yang benar-benar BARU. Panel, tombol, pil, tabel, nota, dan
   keadaan kosong semuanya memakai kelas ARG Suite yang sudah ada — halaman
   yang membawa kosakata gayanya sendiri akan terlihat seperti aplikasi lain
   yang kebetulan dipasang di dalam yang ini.

   WARNA HANYA LEWAT TOKEN. Tidak ada satu pun heks di berkas ini.
   ========================================================================== */

/* ── Bilah bulan di kepala halaman ────────────────────────────────────── */
.abs-bulan{display:flex; align-items:center; gap:9px; flex:none}
.abs-bulan b{font-size:13.5px; font-weight:800; min-width:132px; text-align:center}
/* Panahnya tetap 36px di layar sentuh — di bawah itu ia meleset, dan yang
   meleset di sini memindahkan Finance ke bulan yang salah tanpa disadari. */
.abs-bulan .btn-icon{width:34px; min-width:34px; font-size:16px; line-height:1}
@media (max-width:760px){
  .abs-bulan{width:100%; justify-content:space-between}
  .abs-bulan .btn-icon{width:38px; min-width:38px; min-height:38px}
}

/* ── Ringkasan angka per jenis (halaman Persetujuan) ──────────────────── */
.abs-ringkas{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(128px, 1fr));
  gap:10px; margin-bottom:14px;
}
.abs-kotak{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm);
  padding:11px 13px; display:flex; flex-direction:column; gap:2px;
}
.abs-kotak b{font-size:21px; font-weight:800; line-height:1.1;
  font-variant-numeric:tabular-nums}
.abs-kotak span{font-size:11px; color:var(--ink-3); font-weight:600}

/* ── Kartu antrean ────────────────────────────────────────────────────── */
.abs-baris{margin-bottom:11px}
/* Yang menunggu lebih dari tiga hari diberi garis kiri, BUKAN latar merah:
   latar merah di selusin kartu berturut-turut berhenti berarti "perhatikan
   ini" dan mulai berarti "begitulah tampilannya". */
.abs-baris.abs-lama{border-left:3px solid var(--warn)}

.abs-kop{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:7px}
.abs-nama{font-size:14px; font-weight:800}
.abs-sejak{margin-left:auto; font-size:11.5px; color:var(--ink-3)}
.abs-baris.abs-lama .abs-sejak{color:var(--warn); font-weight:700}

.abs-ringkasan{font-size:13px; line-height:1.65; color:var(--ink)}
.abs-ringkasan b{font-weight:800}
.abs-alasan-karyawan{
  margin-top:6px; font-size:12.5px; color:var(--ink-2); line-height:1.6;
  padding-left:10px; border-left:2px solid var(--line-2);
}

/* Bukti reimburse. Tingginya dibatasi supaya satu foto struk yang dipotret
   tegak tidak mendorong tombol keputusannya keluar layar. */
.abs-bukti{display:flex; gap:8px; flex-wrap:wrap; margin-top:9px}
.abs-bukti:empty{display:none}
.abs-bukti img{
  max-height:150px; width:auto; border:1px solid var(--line);
  border-radius:var(--r-sm); background:var(--sunk);
}
.abs-tanpa-bukti{font-size:11.5px; color:var(--ink-3); font-style:italic}

/* ── Blok keputusan ───────────────────────────────────────────────────── */
.abs-keputusan{margin-top:11px; display:flex; flex-direction:column; gap:8px}
.abs-alasan{
  width:100%; padding:9px 11px; border:1px solid var(--line-in);
  border-radius:var(--r-sm); background:var(--card-2); resize:vertical;
  font-family:inherit; font-size:12.5px; line-height:1.55; color:var(--ink);
}
.abs-alasan:focus{outline:none; border-color:var(--fokus); box-shadow:var(--fokus-ring)}
/* Ditandai hanya SESUDAH tombol Tolak ditekan tanpa alasan — aturan yang
   sama dengan core/wajib.js: layar yang merah pada detik pertama mengajari
   orang mengabaikan warnanya. */
.abs-alasan.perlu{border-color:var(--bad); background:var(--bad-bg)}
.abs-pesan{margin:0; font-size:12px; color:var(--bad); line-height:1.5}
.abs-tombol{display:flex; gap:8px; flex-wrap:wrap}

/* ── Pilihan status di dialog lembur ──────────────────────────────────── */
.abs-pilihan{display:flex; gap:7px; flex-wrap:wrap}
.abs-pilihan .btn.aktif{
  background:var(--blue); border-color:var(--blue); color:var(--on-accent);
}

/* ── Tabel ────────────────────────────────────────────────────────────── */
.abs-tabel .num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
.abs-tabel td, .abs-tabel th{vertical-align:middle}
.abs-sel-tombol{white-space:nowrap}
/* Kode EMP di bawah namanya, bukan di kolom sendiri: ia dibaca SESUDAH
   namanya ketemu, bukan untuk menemukannya — aturan yang sama dengan nomor
   seri di Inventaris. */
.abs-emp{display:block; font-family:var(--font-mono); font-size:10.5px;
  color:var(--ink-3); margin-top:1px}
.abs-tunggu{color:var(--warn)}
.abs-lebih{color:var(--bad); font-weight:700; white-space:nowrap}

/* ── Calon alpa & alpa tercatat ───────────────────────────────────────── */
.abs-calon{display:flex; gap:7px; flex-wrap:wrap}
.abs-alpa-baris{
  display:flex; align-items:center; gap:11px; flex-wrap:wrap;
  padding:9px 0; border-bottom:1px solid var(--line);
  font-size:12.5px;
}
.abs-alpa-baris:last-child{border-bottom:0; padding-bottom:0}
.abs-alpa-baris .abs-alasan-karyawan{
  margin:0; flex:1 1 200px; border-left:0; padding-left:0; color:var(--ink-3);
}
.abs-alpa-baris .btn{margin-left:auto; flex:none}
