:root {
  --spam-primary: #0b5d56;     /* teal tua - identitas medis, tenang & profesional */
  --spam-primary-dark: #07423d;
  --spam-accent: #e07a3e;      /* oranye hangat untuk aksen / CTA penting */
  --spam-bg: #f4f7f6;
  --spam-card-radius: 0.65rem;
}

body {
  background-color: var(--spam-bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.app-navbar {
  background: linear-gradient(135deg, var(--spam-primary) 0%, var(--spam-primary-dark) 100%);
}

.app-navbar .navbar-brand,
.app-navbar .nav-link {
  color: #eafff9;
}
.app-navbar .nav-link.active {
  color: #ffffff;
  font-weight: 600;
  border-bottom: 2px solid var(--spam-accent);
}
.app-navbar .nav-link:hover {
  color: #ffffff;
}
.brand-text { font-weight: 700; letter-spacing: .3px; }

.app-main { min-height: 80vh; }
.app-main-public {
  min-height: 100vh;
  display: flex;
  align-items: center;
}

.app-footer { color: #6c757d; }

.card {
  border: none;
  border-radius: var(--spam-card-radius);
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
}

.btn-primary {
  background-color: var(--spam-primary);
  border-color: var(--spam-primary);
}
.btn-primary:hover, .btn-primary:focus {
  background-color: var(--spam-primary-dark);
  border-color: var(--spam-primary-dark);
}
.btn-accent {
  background-color: var(--spam-accent);
  border-color: var(--spam-accent);
  color: #fff;
}
.btn-accent:hover { color: #fff; opacity: .92; }

.text-primary-spam { color: var(--spam-primary); }

.widget-stat {
  border-left: 4px solid var(--spam-primary);
  transition: transform .15s ease, box-shadow .15s ease;
}
.widget-stat:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,.09);
}
.widget-stat .stat-number { font-size: 2rem; font-weight: 700; line-height: 1; }

.chart-wrap { position: relative; height: 260px; }
.chart-wrap-donut { height: 200px; }
@media (max-width: 576px) {
  .chart-wrap { height: 220px; }
  .chart-wrap-donut { height: 170px; }
}
.legend-dot {
  display: inline-block;
  width: 12px; height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}

.card {
  transition: box-shadow .15s ease;
}

.login-card {
  max-width: 420px;
  margin: 0 auto;
  width: 100%;
}

.timeline {
  position: relative;
  margin-left: 0;
  padding-left: 1.3rem;
  border-left: 3px solid #dee6e4;
}
.timeline-item { position: relative; padding-bottom: 1.25rem; }
.timeline-item::before {
  content: '';
  position: absolute;
  left: -1.55rem;
  top: 0.15rem;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--spam-primary);
  border: 2px solid #fff;
  box-shadow: 0 0 0 2px #dee6e4;
}

.readonly-field {
  background-color: #eef3f2 !important;
}

#qrcode-canvas-wrap canvas, #qrcode-canvas-wrap img {
  max-width: 260px;
  width: 100%;
  height: auto;
}

/* Mobile tweaks: form pelaporan publik agar nyaman di smartphone */
@media (max-width: 576px) {
  .login-card { max-width: 100%; }
  h1.h3, .h3 { font-size: 1.35rem; }
  .table-responsive-card .table thead { display: none; }
}

/* Print: untuk cetak QR Code (tanpa navbar/tombol) */
@media print {
  .app-navbar, .app-footer, .no-print, .btn, nav { display: none !important; }
  .app-main { min-height: auto; }
  body { background: #fff; }
}
