body {
  background: linear-gradient(135deg, #1f4068 0%, #162447 100%) fixed;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  color: #fff;
  min-height: 100vh;
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}
.header-title { text-shadow: 2px 2px 4px rgba(0,0,0,0.5); }
.card { border-radius: 15px; border: none; background-color: rgba(255,255,255,0.95); color: #333; box-shadow: 0 8px 32px 0 rgba(0,0,0,0.3); }
.btn-primary { background-color: #e43f5a; border: none; border-radius: 10px; }
.btn-primary:hover, .btn-primary:focus { background-color: #b9314f; }
.btn-success { background-color: #1f6f8b; border: none; border-radius: 10px; }
.btn-success:hover, .btn-success:focus { background-color: #165366; }
.bg-saldo { background: linear-gradient(135deg, #1f4068 0%, #1f6f8b 100%); color: #fff; }
/* HP: 4 tab dibagi rata selebar layar, teks boleh 2 baris (tidak ada yang terpotong) */
.nav-tabs { border-bottom: none; flex-wrap: nowrap; justify-content: stretch !important; }
.nav-tabs .nav-item { flex: 1 1 0; min-width: 0; display: flex; }
.nav-tabs .nav-link {
  color: #fff; background-color: rgba(255,255,255,0.1); margin: 0 2px; width: 100%;
  border-radius: 10px 10px 0 0; border: none; transition: all 0.3s;
  font-size: 13px; line-height: 1.2; padding: 8px 4px; white-space: normal;
}
.nav-tabs .nav-link.active { font-weight: bold; color: #1f4068; background-color: rgba(255,255,255,0.95); border: none; }
@media (min-width: 576px) {
  .nav-tabs { justify-content: center !important; }
  .nav-tabs .nav-item { flex: 0 0 auto; }
  .nav-tabs .nav-link { font-size: 16px; padding: 10px 20px; margin: 0 4px; white-space: nowrap; }
}
.btn-nominal { border: 2px solid #1f6f8b; color: #1f6f8b; font-weight: 600; border-radius: 8px; transition: all 0.2s; }
.btn-nominal:hover, .btn-nominal.active { background-color: #1f6f8b; color: #fff; }
.tabel-rekap td, .tabel-rekap th { vertical-align: middle; }
.info-periode { background-color: #e8f4f8; color: #1f4068; border: 1px solid #b0d4e3; border-radius: 10px; padding: 10px 16px; font-size: 13px; }
.offline-bar { position: sticky; top: 0; z-index: 1000; background: #ffc107; color: #333; text-align: center; font-size: 13px; font-weight: 600; padding: 6px 12px; }
