/* =====================================================================
   Sistem LAMPID Desa Leuwibatu — Tema Modern & Mobile-First
   ===================================================================== */

:root {
  --lampid-primary: #2f6f4e;
  --lampid-primary-dark: #1c4a31;
  --lampid-primary-light: #3f9468;
  --lampid-accent: #f0a94e;
  --lampid-manual-bg: #fff8e1;
  --lampid-manual-border: #f0ad4e;
  --lampid-auto-bg: #eaf1fb;
  --lampid-auto-border: #7fa8d9;
  --lampid-radius: 16px;
  --lampid-radius-sm: 10px;
  --lampid-shadow: 0 2px 10px rgba(20,40,30,.06), 0 1px 3px rgba(20,40,30,.06);
  --lampid-shadow-lg: 0 10px 30px rgba(20,40,30,.10);
  --bottom-nav-h: 62px;
}

* { -webkit-tap-highlight-color: transparent; }

html { scroll-behavior: smooth; }

body {
  background: #f2f5f4;
  font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;
  color: #26312c;
  padding-bottom: env(safe-area-inset-bottom);
}

/* ===== Navbar ===== */
.app-navbar {
  background: linear-gradient(120deg, var(--lampid-primary-dark), var(--lampid-primary) 65%, var(--lampid-primary-light));
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
  padding-top: .55rem;
  padding-bottom: .55rem;
}
.app-navbar .navbar-brand { letter-spacing: .01em; }
.app-navbar .nav-link {
  border-radius: 999px;
  padding: .4rem .9rem !important;
  transition: background .15s ease, color .15s ease;
  font-weight: 500;
}
.app-navbar .nav-link:hover,
.app-navbar .nav-link.active { background: rgba(255,255,255,.16); color: #fff !important; }

/* ===== Layout ===== */
main.container-fluid { max-width: 1320px; margin-inline: auto; }

/* ===== Cards ===== */
.card {
  border: 1px solid rgba(20,40,30,.06);
  border-radius: var(--lampid-radius);
  box-shadow: var(--lampid-shadow);
  transition: box-shadow .2s ease, transform .2s ease;
}

/* ===== Buttons ===== */
.btn {
  border-radius: 999px;
  font-weight: 600;
  padding-inline: 1.1rem;
  transition: transform .12s ease, box-shadow .12s ease, background .15s ease;
}
.btn:active { transform: scale(.97); }
.btn-success { background: linear-gradient(135deg, var(--lampid-primary-light), var(--lampid-primary)); border: none; box-shadow: 0 4px 12px rgba(47,111,78,.28); }
.btn-success:hover { background: linear-gradient(135deg, var(--lampid-primary), var(--lampid-primary-dark)); box-shadow: 0 6px 16px rgba(47,111,78,.35); }
.btn-danger { box-shadow: 0 4px 12px rgba(193,68,74,.22); }
.btn-outline-secondary, .btn-outline-primary, .btn-outline-success, .btn-outline-danger { border-width: 1.5px; }
.btn.is-loading { pointer-events: none; opacity: .75; }
.btn.is-loading::after {
  content: ''; display: inline-block; width: .85em; height: .85em; margin-left: .5em;
  border: .15em solid currentColor; border-right-color: transparent; border-radius: 50%;
  animation: btn-spin .6s linear infinite; vertical-align: -.15em;
}
@keyframes btn-spin { to { transform: rotate(360deg); } }

/* Sticky action bar for long forms (mobile) */
.sticky-actions {
  position: sticky;
  bottom: calc(var(--bottom-nav-h) + .5rem);
  z-index: 20;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
  padding: .6rem;
  border-radius: var(--lampid-radius-sm);
  box-shadow: 0 -4px 14px rgba(0,0,0,.08);
  margin-top: 1rem;
}
@media (min-width: 768px) {
  .sticky-actions { position: static; background: none; box-shadow: none; padding: 0; backdrop-filter: none; }
}

/* ===== Form inputs ===== */
.form-control, .form-select {
  border-radius: var(--lampid-radius-sm);
  border: 1.5px solid #dfe6e2;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:focus, .form-select:focus {
  border-color: var(--lampid-primary-light);
  box-shadow: 0 0 0 .2rem rgba(63,148,104,.18);
}

/* ===== Pembeda INPUT MANUAL vs DATA OTOMATIS ===== */
.field-manual {
  background-color: var(--lampid-manual-bg) !important;
  border: 2px solid var(--lampid-manual-border) !important;
  font-weight: 600;
}
.field-manual:focus { box-shadow: 0 0 0 .2rem rgba(240,173,78,.35); }
/* Hasil formula/total sebelum laporan dikirim. Tetap readonly karena merupakan
   hasil perhitungan, tetapi sengaja tidak memakai tampilan biru "terkunci". */
.field-hitung {
  background-color: #f8faf9 !important;
  border: 1px solid #cfdad4 !important;
  color: #24352c;
  font-weight: 700;
  cursor: default;
}
.field-otomatis {
  background-color: var(--lampid-auto-bg) !important;
  border: 2px dashed var(--lampid-auto-border) !important;
  color: #2c4a6e;
  font-weight: 700;
  cursor: not-allowed;
}
.legend-box {
  display: inline-block; width: 16px; height: 16px; border-radius: 5px; vertical-align: middle; margin-right: 6px;
}
.legend-manual { background: var(--lampid-manual-bg); border: 2px solid var(--lampid-manual-border); }
.legend-hitung { background:#f8faf9; border:1px solid #cfdad4; }
.legend-otomatis { background: var(--lampid-auto-bg); border: 2px dashed var(--lampid-auto-border); }

/* ===== Dashboard stat cards ===== */
.stat-card {
  border: none;
  border-radius: var(--lampid-radius);
  color: #fff;
  box-shadow: var(--lampid-shadow-lg);
  position: relative;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.stat-card:active { transform: scale(.98); }
.stat-card .stat-icon { font-size: 2rem; opacity: .85; }
.stat-card .stat-value { font-size: 1.9rem; font-weight: 800; line-height: 1.15; }
.stat-card .stat-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; opacity: .92; font-weight: 600; }
.stat-card::after {
  content: ''; position: absolute; inset: 0; background: radial-gradient(120px 80px at 100% 0%, rgba(255,255,255,.22), transparent 70%);
  pointer-events: none;
}

.bg-grad-green  { background: linear-gradient(135deg,#2f9e6b,#1f7a52); }
.bg-grad-blue   { background: linear-gradient(135deg,#3d8bd4,#2563a8); }
.bg-grad-red    { background: linear-gradient(135deg,#e5686d,#c1444a); }
.bg-grad-orange { background: linear-gradient(135deg,#f0a94e,#d1841f); }
.bg-grad-teal   { background: linear-gradient(135deg,#38b6b0,#2a8c87); }
.bg-grad-purple { background: linear-gradient(135deg,#9575cd,#6b4ba1); }
.bg-grad-gray   { background: linear-gradient(135deg,#78848f,#54626c); }

/* ===== Tables (desktop) ===== */
.table thead th { background: var(--lampid-primary-dark); color: #fff; vertical-align: middle; text-align: center; font-weight: 600; }
.table td { vertical-align: middle; text-align: center; }
.table td.text-start { text-align: left; }
.table-hover tbody tr:hover { background: rgba(47,111,78,.06); }

/* Horizontal-scroll tables with sticky header + sticky first column, comfortable on phones */
.table-responsive {
  border-radius: var(--lampid-radius-sm);
  -webkit-overflow-scrolling: touch;
}
.table-responsive .table { margin-bottom: 0; }
@media (max-width: 767.98px) {
  .table-responsive { max-height: 70vh; }
  .table-responsive thead th { position: sticky; top: 0; z-index: 2; }
  .table-responsive td, .table-responsive th { white-space: nowrap; font-size: .82rem; padding: .5rem .6rem; }
  .table-responsive td.text-start:first-child, .table-responsive th.text-start:first-child {
    position: sticky; left: 0; z-index: 1; background: #fff;
    box-shadow: 2px 0 4px rgba(0,0,0,.06);
  }
  .table-responsive thead th.text-start:first-child { z-index: 3; }
}

.section-title {
  border-left: 5px solid var(--lampid-primary);
  padding-left: 10px;
  font-weight: 700;
  margin: 1.5rem 0 1rem;
}

/* ===== Accordion (form sections on mobile) ===== */
.accordion-button { font-weight: 700; border-radius: var(--lampid-radius-sm) !important; }
.accordion-button:not(.collapsed) { background: rgba(47,111,78,.08); color: var(--lampid-primary-dark); box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(63,148,104,.18); }
.accordion-item { border-radius: var(--lampid-radius-sm); overflow: hidden; margin-bottom: .75rem; border: 1px solid rgba(20,40,30,.08); }

/* ===== Toast-style flash alerts ===== */
.flash-stack {
  position: fixed; top: .75rem; right: .75rem; left: .75rem; z-index: 1080;
  display: flex; flex-direction: column; gap: .5rem; pointer-events: none;
}
@media (min-width: 576px) { .flash-stack { left: auto; width: 380px; } }
.flash-toast {
  pointer-events: auto;
  border-radius: var(--lampid-radius-sm);
  box-shadow: var(--lampid-shadow-lg);
  border: none;
  overflow: hidden;
  position: relative;
  animation: toast-in .25s ease;
}
@keyframes toast-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.flash-toast .toast-progress {
  position: absolute; bottom: 0; left: 0; height: 3px; background: rgba(0,0,0,.2);
  animation: toast-shrink 5s linear forwards;
}
@keyframes toast-shrink { from { width: 100%; } to { width: 0%; } }

/* ===== Status badges ===== */
.badge { border-radius: 999px; font-weight: 600; padding: .4em .75em; }

/* ===== Back to top ===== */
#backToTop {
  position: fixed; right: 1rem; bottom: calc(var(--bottom-nav-h) + 1rem); z-index: 30;
  width: 44px; height: 44px; border-radius: 50%; display: none; align-items: center; justify-content: center;
  background: var(--lampid-primary); color: #fff; box-shadow: var(--lampid-shadow-lg); border: none;
}
@media (min-width: 768px) { #backToTop { bottom: 1.25rem; } }

/* ===== Bottom mobile navigation (app-like) ===== */
.bottom-nav {
  display: none;
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040;
  background: #fff;
  border-top: 1px solid rgba(20,40,30,.08);
  box-shadow: 0 -4px 16px rgba(0,0,0,.08);
  padding-bottom: env(safe-area-inset-bottom);
}
.bottom-nav .nav-scroll {
  display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.bottom-nav a {
  flex: 1 0 auto; min-width: 76px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px; padding: .5rem .25rem; text-decoration: none; color: #6c7a72; font-size: .68rem; font-weight: 600;
}
.bottom-nav a i { font-size: 1.25rem; }
.bottom-nav a.active { color: var(--lampid-primary); }
@media (max-width: 767.98px) {
  .bottom-nav { display: block; }
  body { padding-bottom: var(--bottom-nav-h); }
  .app-navbar .navbar-collapse .navbar-nav.app-page-links { display: none; }
}

/* ===== Login page ===== */
.login-card { max-width: 420px; width: 100%; margin: auto; border-radius: 20px; border: none; box-shadow: 0 16px 45px rgba(0,0,0,.3); }

/* ===== Misc polish ===== */
::selection { background: rgba(47,111,78,.25); }
.text-muted { color: #6c7a72 !important; }

@media print {
  /* Kolom Status hanya untuk tampilan layar. Pada semua hasil cetak browser wajib disembunyikan. */
  .status-column,
  th.status-column,
  td.status-column { display: none !important; visibility: hidden !important; width: 0 !important; max-width: 0 !important; padding: 0 !important; border: 0 !important; }

  /* Paksa area cetak ke ukuran fisik A4 mendatar. */
  @page { size: A4 landscape; margin: 7mm; }

  html, body.print-landscape {
    width: 297mm !important;
    min-width: 297mm !important;
    max-width: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    color: #000 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 8pt !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body.print-landscape .app-navbar,
  body.print-landscape .flash-stack,
  body.print-landscape .bottom-nav,
  body.print-landscape footer,
  body.print-landscape #backToTop,
  body.print-landscape .no-print { display: none !important; }

  body.print-landscape main.container-fluid {
    display: block !important;
    box-sizing: border-box !important;
    width: 283mm !important;
    min-width: 283mm !important;
    max-width: 283mm !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.print-landscape .card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    box-shadow: none !important;
    border: 0.5pt solid #777 !important;
    border-radius: 0 !important;
    margin: 0 0 4mm 0 !important;
    padding: 2.5mm !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  body.print-landscape .table-responsive {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }

  body.print-landscape table.table {
    display: table !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    font-size: 6pt !important;
    line-height: 1.05 !important;
  }

  body.print-landscape table.table th,
  body.print-landscape table.table td {
    box-sizing: border-box !important;
    border: 0.45pt solid #444 !important;
    padding: 1px 1.2px !important;
    vertical-align: middle !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  body.print-landscape table.table thead { display: table-header-group !important; }
  body.print-landscape table.table tfoot { display: table-footer-group !important; }
  body.print-landscape table.table tr { break-inside: avoid !important; page-break-inside: avoid !important; }

  /* LAMPID di layar tetap menampilkan Status, tetapi Status sengaja disembunyikan saat cetak.
     Setelah Status disembunyikan tersisa RT + 18 angka = 19 kolom. */
  body.print-landscape .table-lampid th.status-column,
  body.print-landscape .table-lampid td.status-column { display: none !important; }
  body.print-landscape .table-lampid th:first-child,
  body.print-landscape .table-lampid td:first-child { width: 7% !important; }
  body.print-landscape .table-lampid th:not(:first-child):not(.status-column),
  body.print-landscape .table-lampid td:not(:first-child):not(.status-column) { width: 5.1667% !important; }
  body.print-landscape .table-lampid { font-size: 5.2pt !important; }
  body.print-landscape .table-lampid th { font-size: 5pt !important; }

  /* Usia/KTP sangat lebar: 19 kolom. */
  body.print-landscape .table-usia-ktp th:first-child,
  body.print-landscape .table-usia-ktp td:first-child { width: 8% !important; }
  body.print-landscape .table-usia-ktp th:not(:first-child),
  body.print-landscape .table-usia-ktp td:not(:first-child) { width: 3.8333% !important; }
  body.print-landscape .table-usia-ktp { font-size: 5pt !important; }

  body.print-landscape .table-ktp-summary { font-size: 6pt !important; }
  body.print-landscape .table-education { font-size: 7pt !important; }

  /* Detail penduduk: teks boleh turun baris, tidak boleh terpotong. */
  body.print-landscape .table-ktp-detail {
    width: 100% !important;
    table-layout: fixed !important;
    font-size: 5.6pt !important;
  }
  body.print-landscape .table-ktp-detail th,
  body.print-landscape .table-ktp-detail td {
    white-space: normal !important;
    overflow: visible !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    line-height: 1.05 !important;
  }
  body.print-landscape .table-ktp-detail th:nth-child(1), body.print-landscape .table-ktp-detail td:nth-child(1) { width: 3% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(2), body.print-landscape .table-ktp-detail td:nth-child(2) { width: 5% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(3), body.print-landscape .table-ktp-detail td:nth-child(3) { width: 5% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(4), body.print-landscape .table-ktp-detail td:nth-child(4) { width: 10% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(5), body.print-landscape .table-ktp-detail td:nth-child(5) { width: 11% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(6), body.print-landscape .table-ktp-detail td:nth-child(6) { width: 18% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(7), body.print-landscape .table-ktp-detail td:nth-child(7) { width: 4% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(8), body.print-landscape .table-ktp-detail td:nth-child(8) { width: 8% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(9), body.print-landscape .table-ktp-detail td:nth-child(9) { width: 15% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(10), body.print-landscape .table-ktp-detail td:nth-child(10) { width: 17% !important; }
  body.print-landscape .table-ktp-detail th:nth-child(11), body.print-landscape .table-ktp-detail td:nth-child(11) { width: 4% !important; }

  body.print-landscape h4 { font-size: 15px !important; margin-bottom: 2mm !important; }
  body.print-landscape h5 { font-size: 11px !important; margin: 3mm 0 2mm !important; }
  body.print-landscape h6 { font-size: 9px !important; margin-bottom: 2mm !important; }
  body.print-landscape p.text-muted { font-size: 7px !important; margin-bottom: 2mm !important; }

  /* Setiap blok laporan baru dimulai pada halaman baru. */
  body.print-landscape .print-section {
    break-before: page !important;
    page-break-before: always !important;
  }
  body.print-landscape .print-section:first-of-type { break-before: auto !important; page-break-before: auto !important; }

  body.print-landscape .print-keep {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}


/* Workflow RT -> Admin: bagian yang TIDAK REVISI tetap read-only.
   Penguncian bagian REVISI dilakukan langsung oleh PHP pada field/button. */
.report-locked .field-manual,
.report-locked input:not([type="hidden"]),
.report-locked select,
.report-locked textarea,
.report-locked button[type="submit"] { pointer-events:none; }

.section-revisi .field-manual {
  pointer-events:auto;
  cursor:text;
}
.section-revisi button[type="submit"] {
  pointer-events:auto;
}

/* ===== Dashboard modern 2026 ===== */
.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 30px;border-radius:22px;background:linear-gradient(135deg,#ffffff 0%,#eef6f1 100%);border:1px solid rgba(47,111,78,.10);box-shadow:0 12px 35px rgba(20,40,30,.07)}
.dashboard-hero h1{font-size:clamp(1.55rem,2.4vw,2.25rem);font-weight:800;margin:.2rem 0 .35rem;color:#183c2a}.dashboard-hero p{margin:0;color:#63716a}.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.11em;color:#6d7a74}.dashboard-period{min-width:245px;background:#fff;padding:12px;border-radius:15px;border:1px solid #e1e9e4}.dashboard-period label{font-size:.72rem;font-weight:700;color:#69766f;margin-bottom:5px}.dashboard-period .form-select{font-size:.86rem}.fw-800{font-weight:800}
.action-card,.progress-card,.dashboard-panel{border-radius:20px;border:1px solid rgba(20,40,30,.07);box-shadow:0 10px 28px rgba(20,40,30,.07);background:#fff;padding:22px;position:relative;overflow:hidden}.action-card{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#fffdf7,#fff)}.action-card-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#fff0ca;color:#c67b18;font-size:1.35rem;flex:0 0 auto}.action-number{font-size:4rem;line-height:1;font-weight:800;color:rgba(47,111,78,.10);position:absolute;right:18px;bottom:12px}.progress-card{background:linear-gradient(135deg,#f7fbf8,#fff)}.progress-lg{height:12px;border-radius:99px;background:#e9efeb}.progress-lg .progress-bar{border-radius:99px}
.metric-card{min-height:116px;border-radius:18px;padding:18px;color:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 24px rgba(20,40,30,.10);position:relative;overflow:hidden}.metric-card:after{content:'';position:absolute;width:120px;height:120px;border-radius:50%;right:-50px;top:-55px;background:rgba(255,255,255,.12)}.metric-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;opacity:.9}.metric-value{font-size:1.85rem;font-weight:800;margin-top:4px}.metric-icon{font-size:2rem;opacity:.78;z-index:1}.metric-blue{background:linear-gradient(135deg,#3d8bd4,#2563a8)}.metric-green{background:linear-gradient(135deg,#2f9e6b,#1f7a52)}.metric-red{background:linear-gradient(135deg,#df686d,#b9454c)}.metric-orange{background:linear-gradient(135deg,#efa84e,#cf8120)}.metric-teal{background:linear-gradient(135deg,#39b5af,#2b8a86)}.metric-gray{background:linear-gradient(135deg,#7c8790,#59656e)}.metric-purple{background:linear-gradient(135deg,#9575cd,#6b4ba1)}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.section-progress-row{padding:12px 0;border-bottom:1px solid #edf1ee}.section-progress-row:last-child{border-bottom:0}.section-progress-row .progress{height:8px;background:#edf2ef;border-radius:99px}.section-progress-row .progress-bar{border-radius:99px}.wilayah-grid{max-height:270px;overflow:auto;padding-right:3px}.rw-group{padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid #edf1ee}.rw-group:last-child{border-bottom:0}.rw-title{font-size:.82rem;font-weight:800;margin-bottom:8px}.rw-title span{font-weight:500;color:#89948e;margin-left:5px}.rt-pills{display:flex;flex-wrap:wrap;gap:7px}.rt-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;font-size:.72rem;font-weight:700;text-decoration:none;border:1px solid}.rt-pill.valid{color:#1e754b;background:#edf8f1;border-color:#bde2cb}.rt-pill.pending{color:#2569a6;background:#eef6fd;border-color:#c6def2}.rt-pill.attention{color:#b33c43;background:#fff0f1;border-color:#f1c5c8}.rt-pill.empty{color:#6c757d;background:#f5f6f7;border-color:#e2e5e7}.legend-mini{display:flex;gap:12px;flex-wrap:wrap;font-size:.7rem;color:#707c76}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}.dot.valid{background:#2f9e6b}.dot.pending{background:#3d8bd4}.dot.attention{background:#df686d}.dot.empty{background:#9aa3a8}.activity-list{max-height:290px;overflow:auto}.activity-item{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid #edf1ee}.activity-item:last-child{border-bottom:0}.activity-dot{width:9px;height:9px;border-radius:50%;background:#3f9468;margin-top:6px;box-shadow:0 0 0 4px #eaf4ee;flex:0 0 auto}.tiny{font-size:.68rem}.mini-metric{background:#f7f9f8;border:1px solid #e7ece9;border-radius:13px;padding:10px 12px}.mini-metric strong{font-size:1.45rem}.check-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf1ee}.check-row:last-child{border-bottom:0}.check-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto}.check-icon.valid{background:#eaf7ef;color:#23804f}.check-icon.attention{background:#fff0f1;color:#c1444a}.check-icon.pending{background:#edf6fd;color:#2563a8}.check-icon.empty{background:#f1f3f4;color:#7a8388}.note-item{display:flex;gap:12px;padding:12px;border-radius:12px;background:#fff8e1;margin-bottom:8px}.note-item i{color:#c47a16}.note-item:last-child{margin-bottom:0}
@media (min-width:1400px){main.container-fluid{max-width:1480px}}@media(max-width:767.98px){.dashboard-hero{padding:20px;align-items:flex-start;flex-direction:column}.dashboard-period{width:100%;min-width:0}.action-card{padding:18px}.action-number{font-size:3rem}.metric-card{min-height:100px;padding:14px}.metric-value{font-size:1.55rem}.metric-icon{font-size:1.55rem}.dashboard-panel,.progress-card{padding:17px}.rt-hero .btn{width:100%}}


/* ===== Mobile UX: form laporan RT dibuat seperti kartu, bukan tabel lebar ===== */
.lampid-mobile-table { width:100%; }
@media (max-width:767.98px){
  main.container-fluid{width:100%;max-width:none;padding-left:10px;padding-right:10px;}
  .card.p-3.p-md-4{padding:14px !important;border-radius:16px;}
  .section-title{font-size:1rem;margin:.75rem 0 1rem;}
  .dashboard-hero h1{font-size:1.35rem;}
  .dashboard-hero p{font-size:.82rem;line-height:1.45;}
  .dashboard-hero{gap:14px;margin-bottom:12px !important;}
  .dashboard-hero .btn{width:100%;}
  .metric-card{min-height:88px;border-radius:14px;padding:12px;}
  .metric-label{font-size:.62rem;line-height:1.25;}
  .metric-value{font-size:1.35rem;}
  .metric-icon{font-size:1.3rem;}
  .action-card,.progress-card,.dashboard-panel{border-radius:16px;padding:14px;}
  .panel-head{align-items:flex-start;flex-wrap:wrap;margin-bottom:12px;}
  .panel-head .btn{width:100%;}

  /* Hilangkan kebutuhan scroll horizontal pada tabel LAMPID. */
  .lampid-mobile-table{display:block;border:0;}
  .lampid-mobile-table thead{display:none;}
  .lampid-mobile-table tbody,.lampid-mobile-table tr{display:block;width:100%;}
  .lampid-mobile-table tr{
    margin-bottom:10px;
    border:1px solid #e1e8e4;
    border-radius:13px;
    background:#fff;
    padding:10px;
    box-shadow:0 2px 7px rgba(20,40,30,.04);
  }
  .lampid-mobile-table tr.table-success,
  .lampid-mobile-table tr.table-warning{background:#f5faf7;}
  .lampid-mobile-table td{display:block;border:0 !important;padding:4px 0 !important;text-align:left !important;}
  .lampid-mobile-table td:first-child{
    font-size:.86rem;
    font-weight:700;
    padding-bottom:8px !important;
    border-bottom:1px solid #edf1ee !important;
    margin-bottom:6px;
  }
  .lampid-mobile-table td:not(:first-child){width:100%;}
  .lampid-mobile-table td:not(:first-child)::before{
    display:block;
    font-size:.66rem;
    font-weight:700;
    color:#718078;
    margin-bottom:3px;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  /* Kolom L/P/Jumlah diberi label sendiri agar pengguna tidak perlu melihat header tabel. */
  .lampid-mobile-table td:nth-child(2)::before{content:'Laki-laki';}
  .lampid-mobile-table td:nth-child(3)::before{content:'Perempuan';}
  .lampid-mobile-table td:nth-child(4)::before{content:'Jumlah (L+P)';}
  .lampid-mobile-table .form-control{min-height:42px;font-size:1rem;margin-bottom:2px;}
  .lampid-mobile-table td:nth-child(4) .form-control{background:#eef5ff !important;}
  .lampid-mobile-table .badge{font-size:.62rem;vertical-align:middle;}

  /* Usia lebih ringkas: L dan P berdampingan, jumlah di bawah. */
  #form-usia .lampid-mobile-table tr:not(:last-child){display:grid;grid-template-columns:1fr 1fr;column-gap:8px;}
  #form-usia .lampid-mobile-table tr:not(:last-child) td:first-child{grid-column:1/-1;}
  #form-usia .lampid-mobile-table tr:not(:last-child) td:nth-child(2),
  #form-usia .lampid-mobile-table tr:not(:last-child) td:nth-child(3){width:auto;}
  #form-usia .lampid-mobile-table tr:not(:last-child) td:nth-child(4){grid-column:1/-1;}

  /* LAMPID & KTP: L/P berdampingan agar input lebih cepat saat mengetik di HP. */
  #form-lampid .lampid-mobile-table tr,
  #form-ktp .lampid-mobile-table tr{display:grid;grid-template-columns:1fr 1fr;column-gap:8px;}
  #form-lampid .lampid-mobile-table td:first-child,
  #form-ktp .lampid-mobile-table td:first-child{grid-column:1/-1;}
  #form-lampid .lampid-mobile-table td:nth-child(2),
  #form-lampid .lampid-mobile-table td:nth-child(3),
  #form-ktp .lampid-mobile-table td:nth-child(2),
  #form-ktp .lampid-mobile-table td:nth-child(3){width:auto;}
  #form-lampid .lampid-mobile-table td:nth-child(4),
  #form-ktp .lampid-mobile-table td:nth-child(4){grid-column:1/-1;}

  .sticky-actions{bottom:calc(var(--bottom-nav-h) + 6px);padding:8px;border-radius:14px;}
  .sticky-actions .btn{flex:1;min-height:48px;font-size:.82rem;padding:.45rem .55rem;}
  .btn-group{display:flex;width:100%;}
  .btn-group .btn{flex:1;font-size:.72rem;padding:.55rem .45rem;}
  #infoModeLampid{font-size:.75rem;line-height:1.4;}
  .form-label{font-size:.78rem;font-weight:700;}
}

/* ===== Admin: status wilayah dipindahkan ke halaman Pelaporan RT ===== */
.admin-section-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.admin-section-card{border:1px solid #e7ece9;border-radius:14px;padding:14px;background:#fbfcfb;}
@media(max-width:767.98px){
  .admin-section-grid{grid-template-columns:1fr;}
  .admin-section-card{padding:12px;}
}


/* ===== MOBILE HARDENING: laporan RT benar-benar tanpa horizontal scroll ===== */
@media screen and (max-width: 767.98px) {
  html, body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.print-landscape {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  main.container-fluid,
  main.container-fluid > *,
  .card,
  .card-body,
  .table-responsive,
  .table-responsive > * {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Bootstrap .table-responsive tidak boleh membuat area geser ke samping di HP. */
  .table-responsive {
    overflow: visible !important;
    overflow-x: visible !important;
    width: 100% !important;
  }

  .lampid-mobile-table,
  .lampid-mobile-table.table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .lampid-mobile-table tr,
  .lampid-mobile-table td,
  .lampid-mobile-table th {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .lampid-mobile-table .form-control,
  .lampid-mobile-table input,
  .lampid-mobile-table select,
  .lampid-mobile-table textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #form-lampid .lampid-mobile-table tr,
  #form-ktp .lampid-mobile-table tr {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  #form-usia .lampid-mobile-table tr:not(:last-child) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  /* Jangan biarkan teks badge membuat kartu melebar. */
  .lampid-mobile-table .badge,
  .section-title .badge {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  /* Ruang aman agar sticky action tidak menutup input terakhir. */
  .container-fluid {
    padding-bottom: calc(var(--bottom-nav-h, 58px) + 92px) !important;
  }
}

/* ===== Perbaikan mobile: tabel Biodata Penduduk dapat digeser horizontal ===== */
@media screen and (max-width: 767.98px) {
  .penduduk-table-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }
  .penduduk-table-wrap .penduduk-table {
    width: max-content !important;
    min-width: 980px !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  .penduduk-table-wrap .penduduk-table th,
  .penduduk-table-wrap .penduduk-table td {
    white-space: nowrap !important;
    min-width: 72px;
  }
  .penduduk-table-wrap .penduduk-table th:first-child,
  .penduduk-table-wrap .penduduk-table td:first-child {
    min-width: 150px;
  }

  /* Modal tambah/edit: pada HP menjadi layar penuh dan badan form wajib bisa discroll. */
  #modalPenduduk.modal.show {
    overflow: hidden !important;
  }
  #modalPenduduk .modal-dialog {
    height: 100%;
    margin: 0;
    max-width: none;
  }
  #modalPenduduk .modal-content {
    height: 100%;
    max-height: 100dvh;
    border-radius: 0;
  }
  #modalPenduduk .modal-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain;
    touch-action: pan-y;
    min-height: 0;
  }
  #modalPenduduk .modal-footer {
    position: sticky;
    bottom: 0;
    z-index: 3;
    background: rgba(255,255,255,.97);
    padding-bottom: calc(.75rem + env(safe-area-inset-bottom));
  }
}


/* =====================================================================
   MOBILE TOUCH SCROLL — RT
   Jangan mengunci tabel yang memang membutuhkan lebar horizontal.
   Biodata, Riwayat, dan Laporan dapat digeser kiri-kanan dengan jari.
   ===================================================================== */
@media screen and (max-width: 767.98px) {
  /* Biodata Penduduk: tabel tetap tabel, bukan dipaksa mengecil. */
  .rt-penduduk-page .penduduk-table-wrap {
    overflow-x: auto !important;
    overflow-y: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y !important;
    scrollbar-width: thin;
  }
  .rt-penduduk-page .penduduk-table-wrap .penduduk-table {
    width: max-content !important;
    min-width: 980px !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  .rt-penduduk-page .penduduk-table-wrap .penduduk-table th,
  .rt-penduduk-page .penduduk-table-wrap .penduduk-table td {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  /* Riwayat & Laporan: kolom banyak, jadi geser horizontal dengan jari. */
  .rt-wide-report-page .table-responsive {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y !important;
    scrollbar-width: thin;
  }
  .rt-wide-report-page .table-responsive > table {
    width: max-content !important;
    min-width: 850px !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  .rt-wide-report-page .table-responsive table th,
  .rt-wide-report-page .table-responsive table td {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  /* Modal Tambah/Edit Penduduk: form panjang harus bisa digeser vertikal. */
  .rt-penduduk-page #modalPenduduk.modal {
    padding: 0 !important;
    overflow: hidden !important;
  }
  .rt-penduduk-page #modalPenduduk .modal-dialog {
    width: 100% !important;
    max-width: none !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    display: flex !important;
    align-items: stretch !important;
  }
  .rt-penduduk-page #modalPenduduk .modal-content {
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-height: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }
  .rt-penduduk-page #modalPenduduk .modal-header {
    flex: 0 0 auto !important;
    position: relative !important;
    z-index: 5 !important;
  }
  .rt-penduduk-page #modalPenduduk .modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y !important;
    padding-bottom: 110px !important;
  }
  .rt-penduduk-page #modalPenduduk .modal-footer {
    flex: 0 0 auto !important;
    position: sticky !important;
    bottom: 0 !important;
    z-index: 10 !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 -3px 12px rgba(0,0,0,.08) !important;
    padding-bottom: calc(.75rem + env(safe-area-inset-bottom)) !important;
  }
}


/* ===== FINAL MOBILE UX RULES =====
   Form LAMPID tetap rapat/tanpa horizontal scroll.
   Tabel Biodata/Riwayat/Laporan boleh digeser horizontal dengan jari.
*/
@media screen and (max-width: 767.98px) {
  .mobile-x-scroll,
  .rt-penduduk-page .penduduk-table-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x pan-y !important;
    scrollbar-width: thin;
  }
  .mobile-x-scroll > table {
    width: max-content !important;
    min-width: 850px !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  .rt-penduduk-page .penduduk-table-wrap > table {
    width: max-content !important;
    min-width: 980px !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  .mobile-x-scroll th,
  .mobile-x-scroll td,
  .rt-penduduk-page .penduduk-table-wrap th,
  .rt-penduduk-page .penduduk-table-wrap td {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  .rt-penduduk-page #modalPenduduk .modal-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
    min-height: 0 !important;
  }
}


/* =====================================================================
   BIODATA PENDUDUK — tabel desktop lebih lega dan tidak turun per kata.
   Kolom banyak tetap dipertahankan utuh; bila layar belum cukup, gunakan
   scroll horizontal daripada membungkus isi menjadi beberapa baris.
   ===================================================================== */
.rt-penduduk-page main.container-fluid {
  max-width: 1680px;
  width: 100%;
}

.rt-penduduk-page .penduduk-table-wrap {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.rt-penduduk-page .penduduk-table {
  width: 100%;
  min-width: 1560px;
  table-layout: auto;
}

.rt-penduduk-page .penduduk-table th,
.rt-penduduk-page .penduduk-table td {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  padding: .55rem .55rem;
  font-size: .82rem;
}

/* Lebar minimum kolom agar judul dan data penting tetap satu baris. */
.rt-penduduk-page .penduduk-table th:nth-child(1),
.rt-penduduk-page .penduduk-table td:nth-child(1) { min-width: 155px; }
.rt-penduduk-page .penduduk-table th:nth-child(2),
.rt-penduduk-page .penduduk-table td:nth-child(2) { min-width: 165px; }
.rt-penduduk-page .penduduk-table th:nth-child(3),
.rt-penduduk-page .penduduk-table td:nth-child(3) { min-width: 48px; }
.rt-penduduk-page .penduduk-table th:nth-child(4),
.rt-penduduk-page .penduduk-table td:nth-child(4) { min-width: 120px; }
.rt-penduduk-page .penduduk-table th:nth-child(5),
.rt-penduduk-page .penduduk-table td:nth-child(5) { min-width: 72px; }
.rt-penduduk-page .penduduk-table th:nth-child(6),
.rt-penduduk-page .penduduk-table td:nth-child(6) { min-width: 155px; }
.rt-penduduk-page .penduduk-table th:nth-child(7),
.rt-penduduk-page .penduduk-table td:nth-child(7) { min-width: 180px; }
.rt-penduduk-page .penduduk-table th:nth-child(8),
.rt-penduduk-page .penduduk-table td:nth-child(8) { min-width: 210px; }
.rt-penduduk-page .penduduk-table th:nth-child(9),
.rt-penduduk-page .penduduk-table td:nth-child(9) { min-width: 145px; }
.rt-penduduk-page .penduduk-table th:nth-child(10),
.rt-penduduk-page .penduduk-table td:nth-child(10) { min-width: 82px; }
.rt-penduduk-page .penduduk-table th:nth-child(11),
.rt-penduduk-page .penduduk-table td:nth-child(11) { min-width: 82px; }
.rt-penduduk-page .penduduk-table th:nth-child(12),
.rt-penduduk-page .penduduk-table td:nth-child(12) { min-width: 125px; }

/* Saat urut No. KK, garis ini membantu membedakan pergantian keluarga. */
.rt-penduduk-page .penduduk-table tbody tr.family-start > td {
  border-top-width: 3px;
  border-top-color: #b9d8c5;
}

.rt-penduduk-page .penduduk-table .kk-cell,
.rt-penduduk-page .penduduk-table .nik-cell {
  letter-spacing: .01em;
}

@media screen and (max-width: 767.98px) {
  .rt-penduduk-page .penduduk-table,
  .rt-penduduk-page .penduduk-table-wrap > table {
    min-width: 1560px !important;
  }
}


/* =====================================================================
   BIODATA PENDUDUK — revisi 14-08-2026 14:50
   Urutan tabel mengikuti template Excel:
   No. KK, NIK, Nama, L/P, Tempat Lahir, Tanggal Lahir, Pekerjaan,
   [Pendidikan disembunyikan], Status Pernikahan, KTP, Status, Aksi.
   Pada desktop tabel dipadatkan agar seluruh kolom terlihat tanpa scroll.
   ===================================================================== */
@media screen and (min-width: 992px) {
  .rt-penduduk-page main.container-fluid {
    max-width: 1680px;
    width: 100%;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .rt-penduduk-page .penduduk-table-card {
    overflow: hidden;
  }

  .rt-penduduk-page .penduduk-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  .rt-penduduk-page .penduduk-table,
  .rt-penduduk-page .penduduk-table-wrap > table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    margin-bottom: 0;
  }

  .rt-penduduk-page .penduduk-table th,
  .rt-penduduk-page .penduduk-table td {
    min-width: 0 !important;
    max-width: none !important;
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: .42rem .28rem !important;
    font-size: .71rem !important;
    line-height: 1.25;
    vertical-align: middle;
  }

  /* Urutan sama dengan Excel, kecuali Pendidikan tidak ditampilkan. */
  .rt-penduduk-page .penduduk-table th:nth-child(1),
  .rt-penduduk-page .penduduk-table td:nth-child(1) { width: 12.5%; }
  .rt-penduduk-page .penduduk-table th:nth-child(2),
  .rt-penduduk-page .penduduk-table td:nth-child(2) { width: 12.5%; }
  .rt-penduduk-page .penduduk-table th:nth-child(3),
  .rt-penduduk-page .penduduk-table td:nth-child(3) { width: 11%; }
  .rt-penduduk-page .penduduk-table th:nth-child(4),
  .rt-penduduk-page .penduduk-table td:nth-child(4) { width: 3.5%; text-align:center; }
  .rt-penduduk-page .penduduk-table th:nth-child(5),
  .rt-penduduk-page .penduduk-table td:nth-child(5) { width: 8%; }
  .rt-penduduk-page .penduduk-table th:nth-child(6),
  .rt-penduduk-page .penduduk-table td:nth-child(6) { width: 8%; text-align:center; }
  .rt-penduduk-page .penduduk-table th:nth-child(7),
  .rt-penduduk-page .penduduk-table td:nth-child(7) { width: 14%; }
  .rt-penduduk-page .penduduk-table th:nth-child(8),
  .rt-penduduk-page .penduduk-table td:nth-child(8) { width: 9.5%; }
  .rt-penduduk-page .penduduk-table th:nth-child(9),
  .rt-penduduk-page .penduduk-table td:nth-child(9) { width: 5%; text-align:center; }
  .rt-penduduk-page .penduduk-table th:nth-child(10),
  .rt-penduduk-page .penduduk-table td:nth-child(10) { width: 6%; text-align:center; }
  .rt-penduduk-page .penduduk-table th:nth-child(11),
  .rt-penduduk-page .penduduk-table td:nth-child(11) { width: 9.5%; text-align:center; }

  /* Nomor 16 digit dibuat sedikit lebih kecil supaya tetap terbaca utuh. */
  .rt-penduduk-page .penduduk-table .kk-cell,
  .rt-penduduk-page .penduduk-table .nik-cell {
    font-size: .64rem !important;
    letter-spacing: -.025em;
    text-overflow: clip;
  }

  .rt-penduduk-page .penduduk-table .badge {
    font-size: .58rem;
    padding: .28em .42em;
  }

  .rt-penduduk-page .penduduk-table td:last-child .d-flex {
    gap: 2px !important;
  }

  .rt-penduduk-page .penduduk-table td:last-child .btn-sm {
    width: 27px;
    height: 25px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .7rem;
    border-radius: 999px;
  }
}

/* Saat urut No. KK, garis pemisah menunjukkan pergantian keluarga. */
.rt-penduduk-page .penduduk-table tbody tr.family-start > td {
  border-top-width: 2px !important;
  border-top-color: #9fcdb0 !important;
}

/* =====================================================================
   ADMIN DASHBOARD V2 — modernisasi tampilan tanpa mengubah substansi data
   ===================================================================== */
.admin-dashboard-v2 {
  background:
    radial-gradient(circle at 12% 0%, rgba(63,148,104,.10), transparent 28%),
    radial-gradient(circle at 88% 8%, rgba(61,139,212,.08), transparent 26%),
    #f4f7f5;
}
.admin-dashboard-v2 main.container-fluid { max-width: 1480px; }

.admin-dash-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1.45fr) minmax(310px,.7fr);
  gap: 28px;
  overflow: hidden;
  border-radius: 28px;
  padding: 34px;
  color: #fff;
  background: linear-gradient(125deg,#163b29 0%,#245d40 52%,#3b8c63 100%);
  box-shadow: 0 22px 55px rgba(22,59,41,.18);
}
.admin-dash-hero-pattern {
  position: absolute;
  width: 520px;
  height: 520px;
  right: -180px;
  top: -260px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.02);
  pointer-events: none;
}
.admin-dash-hero-main,
.admin-dash-hero-side { position: relative; z-index: 1; }
.admin-dash-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .11em;
  margin-bottom: 16px;
}
.admin-dash-hero h1 {
  font-size: clamp(1.8rem,3vw,3rem);
  font-weight: 800;
  letter-spacing: -.035em;
  margin: 0 0 10px;
}
.admin-dash-hero p {
  max-width: 720px;
  margin: 0;
  color: rgba(255,255,255,.78);
  font-size: .98rem;
  line-height: 1.65;
}
.admin-dash-hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.admin-dash-hero-actions .btn { min-height: 43px; }
.btn-hero-outline {
  color: #fff;
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(8px);
}
.btn-hero-outline:hover { color:#fff; background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.38); }

.admin-dash-hero-side { display:flex; flex-direction:column; gap:14px; justify-content:center; }
.admin-dash-period {
  border-radius: 20px;
  padding: 16px;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
}
.admin-dash-period-icon {
  width: 38px;
  height: 38px;
  display:grid;
  place-items:center;
  border-radius: 12px;
  color:#173d2a;
  background:#fff;
}
.admin-dash-period .form-select {
  color:#fff;
  border-color:rgba(255,255,255,.18);
  background-color:rgba(255,255,255,.10);
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.admin-dash-period .form-select option { color:#26312c; background:#fff; }
.admin-dash-period .form-select:focus { border-color:rgba(255,255,255,.55); box-shadow:0 0 0 .2rem rgba(255,255,255,.10); }
.admin-dash-hero-kpis { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.admin-dash-hero-kpis > div {
  padding: 14px 15px;
  border-radius: 18px;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.admin-dash-hero-kpis span { display:block; font-size:.68rem; color:rgba(255,255,255,.68); margin-bottom:2px; }
.admin-dash-hero-kpis strong { display:block; font-size:1.45rem; line-height:1.1; }

.admin-dash-section-title {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  margin-bottom:14px;
}
.admin-dash-section-title h5 { font-weight:800; color:#22362b; }

.admin-modern-metric {
  --tone:#2f6f4e;
  --tone-soft:#edf7f1;
  position:relative;
  min-height:118px;
  height:100%;
  display:flex;
  align-items:center;
  gap:14px;
  padding:17px;
  border-radius:20px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(25,55,40,.07);
  box-shadow:0 10px 30px rgba(23,55,39,.07);
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.admin-modern-metric:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(23,55,39,.10); border-color:rgba(47,111,78,.13); }
.admin-modern-metric:after {
  content:'';
  position:absolute;
  width:90px;
  height:90px;
  right:-36px;
  bottom:-42px;
  border-radius:50%;
  background:var(--tone-soft);
}
.admin-modern-metric-icon {
  width:48px;
  height:48px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:var(--tone);
  background:var(--tone-soft);
  font-size:1.25rem;
}
.admin-modern-metric-copy { min-width:0; position:relative; z-index:1; }
.admin-modern-metric-label { color:#738078; font-size:.7rem; text-transform:uppercase; letter-spacing:.055em; font-weight:800; line-height:1.35; }
.admin-modern-metric-value { color:#1f3228; font-size:1.65rem; font-weight:800; line-height:1.1; margin-top:4px; }
.admin-modern-metric-arrow { position:absolute; right:14px; top:12px; color:var(--tone); opacity:.25; font-size:.85rem; }
.admin-modern-metric.tone-blue{--tone:#2d74b7;--tone-soft:#edf6ff}.admin-modern-metric.tone-green{--tone:#2f8e60;--tone-soft:#edf8f2}.admin-modern-metric.tone-red{--tone:#c24d55;--tone-soft:#fff0f1}.admin-modern-metric.tone-orange{--tone:#d38724;--tone-soft:#fff7e8}.admin-modern-metric.tone-teal{--tone:#2d9791;--tone-soft:#eaf9f7}.admin-modern-metric.tone-gray{--tone:#6c7880;--tone-soft:#f1f4f5}.admin-modern-metric.tone-purple{--tone:#795bb3;--tone-soft:#f3effb}

.admin-modern-panel {
  position:relative;
  overflow:hidden;
  padding:24px;
  border-radius:22px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(25,55,40,.07);
  box-shadow:0 10px 32px rgba(23,55,39,.07);
}
.admin-panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.admin-panel-heading h4,.admin-panel-heading h5 { font-weight:800; color:#21372a; margin:.1rem 0 .35rem; }
.admin-panel-heading p { margin:0; color:#738078; font-size:.84rem; line-height:1.5; }
.admin-panel-icon,
.admin-action-badge {
  width:44px;
  height:44px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#edf7f1;
  color:#2f6f4e;
  font-size:1.1rem;
}
.admin-action-panel { background:linear-gradient(135deg,#fffdfa 0%,#fff 70%); }
.admin-action-badge { background:#fff1ce; color:#bf7414; }
.admin-action-buttons { display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; position:relative; z-index:1; }
.admin-action-number { position:absolute; right:22px; bottom:0; font-size:7rem; line-height:.78; font-weight:800; color:rgba(47,111,78,.055); pointer-events:none; }

.admin-progress-panel { background:linear-gradient(140deg,#f7fbf8,#fff); }
.admin-progress-value { font-size:2.65rem; line-height:1; font-weight:800; color:#255b40; letter-spacing:-.05em; }
.admin-progress-value span { font-size:.9rem; color:#6f7d75; margin-left:2px; letter-spacing:0; }
.admin-progress-track { height:11px; border-radius:999px; overflow:hidden; background:#e7eeea; }
.admin-progress-track > div { height:100%; border-radius:inherit; background:linear-gradient(90deg,#2f8e60,#3fa474); box-shadow:0 0 0 1px rgba(47,111,78,.05) inset; }
.admin-progress-track.is-small { height:8px; }
.admin-progress-mini { display:flex; flex-wrap:wrap; gap:15px; font-size:.76rem; color:#66756d; }

.admin-section-grid-v2 { gap:14px; }
.admin-verify-card {
  padding:17px;
  border-radius:17px;
  background:#fbfcfb;
  border:1px solid #e6ece8;
  transition:transform .18s ease, box-shadow .18s ease;
}
.admin-verify-card:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(24,55,40,.08); }
.admin-verify-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.admin-verify-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:#eaf6ee; color:#2d8057; }
.admin-verify-percent { font-size:1.2rem; font-weight:800; color:#2b5f43; }
.admin-verify-card h6 { font-weight:800; color:#263a2f; min-height:38px; }
.admin-verify-status { display:flex; flex-wrap:wrap; gap:8px 12px; margin-top:12px; font-size:.72rem; font-weight:700; }
.admin-verify-status .is-valid{color:#2c8658}.admin-verify-status .is-revisi{color:#c34d56}.admin-verify-status .is-wait{color:#3378b9}

.admin-chart-wrap { position:relative; height:325px; margin-top:10px; }
.admin-activity-list { max-height:345px; padding-right:3px; }
.admin-activity-item { padding:12px 0; }
.admin-empty-state { min-height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#8a9690; font-size:.82rem; }
.admin-empty-state i { font-size:1.7rem; }

.admin-marriage-card {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:15px 16px;
  border-radius:16px;
  background:#f8faf9;
  border:1px solid #e7ece9;
}
.admin-marriage-card span { color:#6d7a73; font-size:.78rem; }
.admin-marriage-card strong { font-size:1.35rem; color:#253a2e; }

.admin-dashboard-footer-actions {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:18px 20px;
  border:1px solid rgba(25,55,40,.07);
  border-radius:18px;
  background:rgba(255,255,255,.88);
  box-shadow:0 8px 26px rgba(23,55,39,.05);
}

/* =====================================================================
   ADMIN — DATA PENDUDUK SELURUH RT
   ===================================================================== */
.admin-penduduk-page { background:#f4f7f5; }
.admin-penduduk-page main.container-fluid { max-width:1680px; }
.penduduk-admin-hero {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:26px 28px;
  border-radius:24px;
  background:linear-gradient(135deg,#fff 0%,#eff7f2 100%);
  border:1px solid rgba(47,111,78,.10);
  box-shadow:0 12px 34px rgba(20,40,30,.07);
}
.penduduk-admin-hero h1 { margin:.15rem 0 .4rem; color:#1d3f2c; font-size:clamp(1.55rem,2.4vw,2.35rem); font-weight:800; letter-spacing:-.03em; }
.penduduk-admin-hero p { margin:0; max-width:850px; color:#6c7972; line-height:1.6; }

.penduduk-summary-card {
  display:flex;
  align-items:center;
  gap:13px;
  min-height:94px;
  padding:15px 16px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(25,55,40,.07);
  box-shadow:0 8px 24px rgba(23,55,39,.055);
}
.penduduk-summary-icon { width:45px; height:45px; display:grid; place-items:center; border-radius:14px; font-size:1.15rem; flex:0 0 auto; }
.penduduk-summary-icon.is-green{background:#eaf7ef;color:#2d8357}.penduduk-summary-icon.is-blue{background:#edf6ff;color:#3478b5}.penduduk-summary-icon.is-purple{background:#f3effb;color:#765ab0}.penduduk-summary-icon.is-orange{background:#fff4df;color:#c47a18}
.penduduk-summary-card strong { display:block; color:#24382d; font-size:1.55rem; line-height:1.1; margin-top:2px; }

.penduduk-filter-panel { padding:20px 22px; }
.penduduk-admin-table-card { overflow:hidden; border-radius:20px; }
.penduduk-admin-table-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  border-bottom:1px solid #e9eeeb;
  background:#fff;
}
.penduduk-admin-table-head h5 { font-weight:800; color:#24392d; }
.penduduk-admin-table-wrap { max-height:none; overflow:auto; border-radius:0; }
.penduduk-admin-table { min-width:1460px; }
.penduduk-admin-table thead th {
  position:sticky;
  top:0;
  z-index:4;
  padding:.72rem .65rem;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.045em;
  white-space:nowrap;
  background:#214c35;
}
.penduduk-admin-table td { padding:.64rem .65rem; font-size:.75rem; white-space:nowrap; }
.penduduk-admin-table tbody tr:hover { background:#f5faf7; }
.admin-penduduk-page .penduduk-admin-table tbody tr.family-start > td { border-top:2px solid #b9d7c4; }
.admin-penduduk-page #modalDownloadPenduduk .modal-content { border:0; border-radius:20px; overflow:hidden; box-shadow:0 22px 60px rgba(22,54,36,.18); }
.admin-penduduk-page #modalDownloadPenduduk .modal-header { background:linear-gradient(135deg,#f3faf6,#ffffff); }
.wilayah-badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  text-decoration:none;
  padding:5px 8px;
  border-radius:999px;
  border:1px solid #cfe3d6;
  background:#eff8f2;
  color:#245e40;
  font-size:.68rem;
}
.wilayah-badge span { color:#6f7d75; font-weight:600; }
.wilayah-badge:hover { color:#183f2a; background:#e5f4ea; }
.penduduk-pagination {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:14px 18px;
  border-top:1px solid #e9eeeb;
  background:#fff;
}
.penduduk-pagination .page-link { color:#2f6f4e; border-color:#e0e7e3; }
.penduduk-pagination .page-item.active .page-link { background:#2f6f4e; border-color:#2f6f4e; color:#fff; }

@media (max-width: 1199.98px) {
  .admin-dash-hero { grid-template-columns:1fr; }
  .admin-dash-hero-side { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.75fr); align-items:stretch; }
  .admin-dash-hero-kpis { height:100%; }
  .admin-dashboard-footer-actions { align-items:flex-start; flex-direction:column; }
}

@media (max-width: 767.98px) {
  .admin-dash-hero { padding:22px 18px; border-radius:20px; gap:20px; }
  .admin-dash-hero h1 { font-size:1.7rem; }
  .admin-dash-hero p { font-size:.84rem; }
  .admin-dash-hero-side { display:flex; }
  .admin-dash-hero-actions .btn { flex:1 1 100%; }
  .admin-dash-section-title { align-items:flex-start; flex-direction:column; gap:3px; }
  .admin-modern-metric { min-height:100px; padding:13px; gap:10px; border-radius:16px; }
  .admin-modern-metric-icon { width:40px; height:40px; border-radius:12px; font-size:1rem; }
  .admin-modern-metric-label { font-size:.61rem; }
  .admin-modern-metric-value { font-size:1.35rem; }
  .admin-modern-panel { padding:17px; border-radius:18px; }
  .admin-panel-heading { flex-wrap:wrap; }
  .admin-panel-heading .d-flex { width:100%; }
  .admin-panel-heading .btn { flex:1; }
  .admin-action-buttons .btn { flex:1 1 100%; }
  .admin-action-number { font-size:5rem; }
  .admin-chart-wrap { height:260px; }
  .admin-dashboard-footer-actions .btn { flex:1 1 100%; }

  .penduduk-admin-hero { align-items:flex-start; flex-direction:column; padding:20px; border-radius:20px; }
  .penduduk-admin-hero p { font-size:.82rem; }
  .penduduk-admin-hero .d-flex { width:100%; }
  .penduduk-admin-hero .btn { flex:1; }
  .penduduk-summary-card { min-height:88px; padding:12px; gap:9px; }
  .penduduk-summary-icon { width:38px; height:38px; border-radius:11px; font-size:.95rem; }
  .penduduk-summary-card .small { font-size:.66rem; }
  .penduduk-summary-card strong { font-size:1.25rem; }
  .penduduk-filter-panel { padding:15px; }
  .penduduk-admin-table-head { align-items:flex-start; flex-direction:column; padding:15px; }
  .penduduk-admin-table-head form { width:100%; }
  .penduduk-admin-table-wrap { overflow-x:auto !important; overflow-y:auto !important; -webkit-overflow-scrolling:touch; max-height:68vh !important; }
  .penduduk-admin-table { min-width:1460px !important; width:max-content !important; }
  .penduduk-pagination { align-items:flex-start; flex-direction:column; }
}

/* =====================================================================
   LAMPID 2026 — MODERN APPLICATION SHELL (ADMIN + RT)
   ===================================================================== */
.lampid-shell-body {
  --shell-sidebar: 236px;
  --shell-sidebar-collapsed: 78px;
  --shell-green: #064a38;
  --shell-green-dark: #043a2e;
  --shell-green-mid: #0b6045;
  --shell-page: #f7f9f8;
  --shell-border: #e4e9e6;
  --shell-text: #122019;
  --shell-muted: #718078;
  background: var(--shell-page);
  color: var(--shell-text);
  min-height: 100vh;
  padding-bottom: 0;
}
.lampid-app-shell { min-height:100vh; }
.lampid-sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:var(--shell-sidebar);
  z-index:1035;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:
    radial-gradient(460px 330px at 85% 100%, rgba(14,124,86,.38), transparent 66%),
    linear-gradient(165deg, #064837 0%, #03392d 55%, #044d3a 100%);
  color:#fff;
  box-shadow:8px 0 30px rgba(4,42,31,.08);
  transition:width .22s ease, transform .22s ease;
}
.lampid-sidebar-brand { padding:18px 14px 14px; }
.lampid-brand-link { display:flex; align-items:center; gap:11px; color:#fff; text-decoration:none; min-width:0; }
.lampid-brand-link:hover { color:#fff; }
.lampid-brand-mark {
  width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center;
  border-radius:12px; color:#0c5a40; background:linear-gradient(145deg,#f9da37,#d8f23a);
  font-size:1.18rem; box-shadow:0 7px 18px rgba(0,0,0,.16);
}
.lampid-brand-copy { display:flex; flex-direction:column; line-height:1.05; min-width:0; transition:opacity .15s ease; }
.lampid-brand-copy strong { font-size:1.42rem; letter-spacing:-.035em; }
.lampid-brand-copy small { margin-top:4px; font-size:.89rem; font-weight:600; color:rgba(255,255,255,.9); }
.lampid-sidebar-nav { flex:1; overflow-y:auto; padding:6px 10px 14px; scrollbar-width:thin; }
.lampid-side-link {
  position:relative; display:flex; align-items:center; gap:12px; min-height:46px; margin:3px 0; padding:10px 12px;
  border-radius:10px; color:rgba(255,255,255,.91); text-decoration:none; font-size:.83rem; font-weight:600;
  transition:background .16s ease, color .16s ease, transform .16s ease;
}
.lampid-side-link i { width:22px; flex:0 0 22px; text-align:center; font-size:1.05rem; }
.lampid-side-link span { white-space:nowrap; transition:opacity .12s ease; }
.lampid-side-link:hover { color:#fff; background:rgba(255,255,255,.09); transform:translateX(1px); }
.lampid-side-link.active { color:#0e6c46; background:#fff; box-shadow:0 6px 16px rgba(0,0,0,.10); }
.lampid-side-badge { margin-left:auto; min-width:21px; height:21px; padding:0 6px; display:grid; place-items:center; border-radius:999px; background:#f0444a; color:#fff; font-style:normal; font-size:.65rem; }
.lampid-side-divider { height:1px; margin:12px 10px; background:rgba(255,255,255,.11); }
.lampid-side-logout { margin-top:5px; }
.lampid-sidebar-bottom { padding:10px 12px 16px; }
.lampid-user-card,.lampid-area-card {
  display:flex; align-items:center; gap:10px; padding:10px; margin-bottom:9px; min-height:56px; border-radius:12px;
  background:rgba(255,255,255,.075); border:1px solid rgba(255,255,255,.055); overflow:hidden;
}
.lampid-avatar { width:32px; height:32px; flex:0 0 32px; display:grid; place-items:center; border-radius:50%; background:#ecf1ef; color:#63766e; }
.lampid-user-card div,.lampid-area-card div { display:flex; flex-direction:column; min-width:0; }
.lampid-user-card strong,.lampid-area-card strong { font-size:.68rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lampid-user-card small,.lampid-area-card span,.lampid-area-card small { font-size:.59rem; color:rgba(255,255,255,.7); white-space:nowrap; }
.lampid-area-card > i { width:31px; height:31px; display:grid; place-items:center; border-radius:9px; background:rgba(54,203,134,.13); color:#75dcaa; font-size:1rem; }
.lampid-collapse-btn {
  width:100%; display:flex; align-items:center; gap:10px; min-height:37px; padding:8px 11px; border:0; border-radius:9px;
  color:rgba(255,255,255,.82); background:rgba(255,255,255,.055); font:inherit; font-size:.68rem; font-weight:600;
}
.lampid-collapse-btn:hover { color:#fff; background:rgba(255,255,255,.1); }
.lampid-collapse-btn i { width:21px; }

.lampid-shell-content { min-height:100vh; margin-left:var(--shell-sidebar); display:flex; flex-direction:column; transition:margin-left .22s ease; }
.lampid-topbar {
  position:sticky; top:0; z-index:1025; min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:9px 22px; border-bottom:1px solid var(--shell-border); background:rgba(255,255,255,.94); backdrop-filter:blur(12px);
}
.lampid-topbar-left,.lampid-topbar-right { display:flex; align-items:center; gap:14px; min-width:0; }
.lampid-menu-toggle {
  width:38px; height:38px; display:grid; place-items:center; border:0; border-radius:9px; background:#f5f8f6; color:#08734e; font-size:1.35rem;
}
.lampid-menu-toggle:hover { background:#eaf3ee; }
.lampid-topbar-page { display:flex; flex-direction:column; min-width:0; }
.lampid-topbar-page strong { font-size:.81rem; color:#18251e; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lampid-topbar-page span { margin-top:1px; font-size:.62rem; color:#87928c; }
.lampid-global-search {
  align-items:center; gap:8px; width:310px; height:40px; padding:0 10px 0 13px; border:1px solid #e2e7e4; border-radius:10px; background:#fff;
}
.lampid-global-search i { color:#53645b; }
.lampid-global-search input { width:100%; min-width:0; border:0; outline:0; color:#24342c; font-size:.72rem; background:transparent; }
.lampid-global-search input::placeholder { color:#9aa49f; }
.lampid-global-search button { border:0; background:transparent; color:#496056; padding:3px; }
.lampid-period-pill { align-items:center; gap:9px; min-height:40px; padding:0 13px; border:1px solid #e2e7e4; border-radius:10px; background:#fff; color:#27352e; font-size:.75rem; font-weight:600; }
.lampid-notification { position:relative; width:39px; height:39px; display:grid; place-items:center; color:#14261d; text-decoration:none; border-left:1px solid #e6ebe8; padding-left:12px; box-sizing:content-box; font-size:1.08rem; }
.lampid-notification span { position:absolute; top:-1px; right:-2px; min-width:18px; height:18px; padding:0 4px; display:grid; place-items:center; border-radius:99px; background:#f0444a; color:#fff; border:2px solid #fff; font-size:.58rem; font-weight:800; }
.lampid-top-user { display:flex; align-items:center; gap:9px; min-width:0; padding-left:5px; }
.lampid-top-avatar { width:35px; height:35px; flex:0 0 35px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#143a31; }
.lampid-top-user div { display:flex; flex-direction:column; min-width:0; }
.lampid-top-user strong { max-width:135px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.72rem; }
.lampid-top-user small { font-size:.59rem; color:#7d8983; }
.lampid-main { flex:1; width:100%; max-width:1660px; margin:0 auto; padding:18px 22px 26px; }
.lampid-shell-footer { display:flex; justify-content:space-between; gap:12px; padding:15px 24px; border-top:1px solid #e6ebe8; background:#fff; font-size:.62rem; }
.lampid-sidebar-overlay { display:none; position:fixed; inset:0; z-index:1030; background:rgba(3,24,18,.42); }

body.sidebar-collapsed .lampid-sidebar { width:var(--shell-sidebar-collapsed); }
body.sidebar-collapsed .lampid-shell-content { margin-left:var(--shell-sidebar-collapsed); }
body.sidebar-collapsed .lampid-brand-copy,
body.sidebar-collapsed .lampid-side-link span,
body.sidebar-collapsed .lampid-side-badge,
body.sidebar-collapsed .lampid-user-card div,
body.sidebar-collapsed .lampid-area-card div,
body.sidebar-collapsed .lampid-collapse-btn span { opacity:0; width:0; pointer-events:none; }
body.sidebar-collapsed .lampid-sidebar-brand { padding-inline:17px; }
body.sidebar-collapsed .lampid-side-link { justify-content:center; padding-inline:10px; }
body.sidebar-collapsed .lampid-side-link i { width:28px; font-size:1.15rem; }
body.sidebar-collapsed .lampid-user-card,body.sidebar-collapsed .lampid-area-card { justify-content:center; padding:9px 6px; }
body.sidebar-collapsed .lampid-collapse-btn { justify-content:center; }
body.sidebar-collapsed .lampid-collapse-btn i { transform:rotate(180deg); }

.admin-penduduk-page .lampid-main { max-width:1760px; }

/* ===== Shared dashboard language ===== */
.admin-dashboard-modern .lampid-main,.rt-dashboard-modern .lampid-main { max-width:1660px; }
.dash-page-head,.rt-welcome-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:15px; }
.dash-page-head h1,.rt-welcome-head h1 { margin:0 0 4px; font-size:1.48rem; line-height:1.2; font-weight:800; letter-spacing:-.035em; color:#111d17; }
.dash-page-head p,.rt-welcome-head p { margin:0; color:#6f7d75; font-size:.72rem; }
.dash-period-select { display:flex; align-items:center; gap:7px; min-height:42px; padding:5px 8px 5px 12px; border:1px solid #e3e8e5; border-radius:10px; background:#fff; }
.dash-period-select i { color:#1f3128; }
.dash-period-select select { border:0; outline:0; background:transparent; color:#213029; font-size:.7rem; font-weight:600; }

.dash-stat-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:11px; }
.dash-stat-card { --tone:#159447; --soft:#eaf8ef; position:relative; min-width:0; min-height:132px; padding:14px 14px 8px; overflow:hidden; border:1px solid #e5eae7; border-radius:13px; background:#fff; box-shadow:0 3px 13px rgba(17,52,36,.035); }
.dash-stat-card.tone-green,.rt-stat-card.tone-green { --tone:#159447;--soft:#eaf8ef; }
.dash-stat-card.tone-red,.rt-stat-card.tone-red { --tone:#ef3340;--soft:#fff0f1; }
.dash-stat-card.tone-blue,.rt-stat-card.tone-blue { --tone:#2c7be5;--soft:#edf5ff; }
.dash-stat-card.tone-orange,.rt-stat-card.tone-orange { --tone:#f27b14;--soft:#fff3e7; }
.dash-stat-card.tone-purple,.rt-stat-card.tone-purple { --tone:#8b42c6;--soft:#f7effd; }
.dash-stat-main { display:flex; align-items:center; gap:10px; position:relative; z-index:2; }
.dash-stat-icon,.rt-stat-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:50%; background:var(--soft); color:var(--tone); font-size:1.08rem; }
.dash-stat-main > div,.rt-stat-top > div { min-width:0; }
.dash-stat-main small,.rt-stat-top small { display:block; margin-bottom:2px; color:#334239; font-size:.58rem; text-transform:uppercase; letter-spacing:.02em; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dash-stat-main strong,.rt-stat-top strong { display:block; color:#122119; font-size:1.55rem; line-height:1; font-weight:800; letter-spacing:-.035em; }
.dash-stat-meta,.rt-stat-meta { display:flex; align-items:center; gap:4px; margin-top:10px; min-height:17px; color:#839089; font-size:.57rem; position:relative; z-index:2; }
.dash-stat-meta.up,.rt-stat-meta.up { color:#138744; }
.dash-stat-meta.down,.rt-stat-meta.down { color:#e43c46; }
.dash-spark-wrap { position:absolute; left:10px; right:10px; bottom:4px; height:33px; opacity:.95; }

.dash-grid { display:grid; gap:11px; }
.dash-grid-3 { grid-template-columns:1.05fr 1fr 1.18fr; }
.dash-grid-bottom { grid-template-columns:1.42fr .78fr .94fr; }
.dash-grid-extra { grid-template-columns:1.1fr .8fr 1.1fr; }
.dash-panel,.rt-panel { display:flex; flex-direction:column; min-width:0; padding:14px; border:1px solid #e4e9e6; border-radius:13px; background:#fff; box-shadow:0 3px 14px rgba(17,52,36,.035); }
.dash-panel-title,.rt-panel-title { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:11px; }
.dash-panel-title h3,.rt-panel-title h3 { margin:0; color:#18241e; font-size:.78rem; text-transform:uppercase; font-weight:800; letter-spacing:-.01em; }
.dash-panel-title p,.rt-panel-title p { margin:3px 0 0; color:#7a8780; font-size:.58rem; line-height:1.45; }
.dash-outline-action { margin-top:auto; min-height:34px; display:flex; align-items:center; justify-content:center; gap:8px; padding:7px 10px; border:1px solid #e0e6e2; border-radius:8px; color:#137340; text-decoration:none; font-size:.62rem; font-weight:700; background:#fff; }
.dash-outline-action:hover { color:#0b5d32; border-color:#bfd6c7; background:#f7fbf8; }
.dash-outline-action i:last-child { margin-left:2px; }
.status-pill { display:inline-flex; align-items:center; justify-content:center; gap:4px; min-height:22px; padding:4px 8px; border-radius:999px; font-size:.56rem; font-weight:700; font-style:normal; white-space:nowrap; }
.status-pill.success { color:#14703c; background:#e8f7ed; }
.status-pill.danger { color:#e23c47; background:#fff0f1; }
.status-pill.warning,.status-pill.orange { color:#b8660d; background:#fff2dd; }
.status-pill.info,.status-pill.blue { color:#1769b7; background:#edf5ff; }
.status-pill.secondary { color:#6f7974; background:#f0f3f1; }
.icon-action { width:28px; height:28px; display:inline-grid; place-items:center; border:1px solid #dde4e0; border-radius:8px; background:#fff; color:#1a2c23; text-decoration:none; }
.icon-action:hover { color:#0e7b47; border-color:#bcd8c8; background:#f6fbf8; }

/* ===== Admin dashboard ===== */
.report-progress-layout { display:grid; grid-template-columns:150px 1fr; gap:16px; align-items:center; margin:5px 0 14px; }
.report-donut { width:126px; height:126px; margin:auto; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#0f9749 calc(var(--progress) * 1%), #ff9098 0); position:relative; }
.report-donut:after { content:''; position:absolute; inset:17px; border-radius:50%; background:#fff; }
.report-donut > div { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
.report-donut strong { font-size:1.35rem; line-height:1; color:#17241d; }
.report-donut span { margin-top:4px; font-size:.56rem; color:#66746c; }
.report-progress-copy { display:flex; flex-direction:column; gap:9px; }
.legend-row { display:flex; justify-content:space-between; align-items:center; gap:10px; color:#3c4942; font-size:.61rem; }
.legend-row > span { display:flex; align-items:center; gap:6px; }
.legend-row strong { color:#29372f; font-size:.62rem; }
.dot { width:8px; height:8px; display:inline-block; border-radius:3px; }
.dot.success { background:#14a04c; }.dot.danger{background:#ff4a55;}
.mini-progress { height:6px; overflow:hidden; border-radius:99px; background:#e7ece9; }
.mini-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#0d8841,#18a557); }
.report-progress-copy > small { color:#7b8881; font-size:.57rem; }
.verify-mini-grid { display:grid; grid-template-columns:1fr 1fr; margin:3px 0 14px; border:1px solid #edf0ee; border-radius:9px; overflow:hidden; }
.verify-mini-grid > div,.rt-change-grid > div { display:flex; align-items:center; gap:9px; min-height:70px; padding:10px; border-right:1px solid #edf0ee; border-bottom:1px solid #edf0ee; }
.verify-mini-grid > div:nth-child(2n) { border-right:0; }.verify-mini-grid > div:nth-last-child(-n+2){border-bottom:0;}
.mini-icon { width:37px; height:37px; flex:0 0 37px; display:grid; place-items:center; border-radius:50%; font-size:.98rem; }
.mini-icon.green{background:#e9f8ef;color:#139247}.mini-icon.red{background:#fff0f1;color:#e93d47}.mini-icon.blue{background:#edf5ff;color:#2c7be5}.mini-icon.orange{background:#fff2e5;color:#ed7610}
.verify-mini-grid p,.rt-change-grid p { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; column-gap:8px; width:100%; margin:0; color:#344239; font-size:.58rem; }
.verify-mini-grid p strong,.rt-change-grid p strong { grid-row:1 / span 2; grid-column:2; align-self:center; color:#122019; font-size:1.22rem; }
.verify-mini-grid p small,.rt-change-grid p small { color:#7d8983; font-size:.52rem; }
.dash-chart-panel { min-height:292px; }
.dash-main-chart { flex:1; min-height:205px; position:relative; margin-bottom:9px; }

.dash-status-table-panel { overflow:hidden; }
.dash-table-wrap { flex:1; border:1px solid #edf0ee; border-radius:9px; max-height:none; }
.dash-table { min-width:640px; }
.dash-table thead th { position:static; padding:7px 8px; border:0; background:#f7f9f8; color:#27352e; font-size:.53rem; text-transform:none; white-space:nowrap; }
.dash-table td { padding:7px 8px; border-color:#edf0ee; color:#324038; font-size:.55rem; text-align:center; }
.dash-table td:first-child,.dash-table th:first-child,.dash-table td:nth-child(2),.dash-table th:nth-child(2){text-align:left;}
.dash-table td strong { display:block; font-size:.56rem; }.dash-table td small { display:block; color:#8a958f; font-size:.49rem; }
.gender-layout { display:flex; align-items:center; justify-content:center; gap:16px; flex:1; margin:8px 0 12px; }
.gender-donut { width:128px; height:128px; flex:0 0 128px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#5b9dea calc(var(--male) * 1%), #f4879b 0); position:relative; }
.gender-donut:after { content:''; position:absolute; inset:22px; border-radius:50%; background:#fff; }
.gender-donut div { z-index:2; display:flex; flex-direction:column; align-items:center; }.gender-donut strong{font-size:1.15rem}.gender-donut span{font-size:.55rem;color:#718078;}
.gender-legend { display:flex; flex-direction:column; gap:13px; }
.gender-legend > div { display:flex; align-items:flex-start; gap:7px; }.gender-dot{width:8px;height:8px;border-radius:3px;margin-top:3px}.gender-dot.male{background:#5b9dea}.gender-dot.female{background:#f4879b}
.gender-legend span { display:flex; flex-direction:column; color:#4a5850; font-size:.56rem; }.gender-legend strong{margin-top:2px;color:#1c2a22;font-size:.78rem}.gender-legend small{color:#7c8982;font-size:.5rem;}
.reminder-list { display:flex; flex-direction:column; gap:7px; flex:1; }
.reminder-list a { display:grid; grid-template-columns:37px 1fr auto; align-items:center; gap:9px; min-height:58px; padding:8px; border:1px solid #e7ece9; border-radius:9px; color:inherit; text-decoration:none; }
.reminder-list a:hover { border-color:#cbdcd2; background:#f9fcfa; }
.reminder-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; }.reminder-icon.green{background:#e9f8ef;color:#139247}.reminder-icon.orange{background:#fff3e6;color:#f27b14}.reminder-icon.blue{background:#edf5ff;color:#2c7be5}
.reminder-list p { display:flex; flex-direction:column; margin:0; font-size:.55rem; }.reminder-list p strong{margin-top:2px;color:#7b8781;font-size:.49rem;font-weight:600}.reminder-list em{padding:5px 8px;border-radius:99px;background:#edf7f1;color:#14703c;font-size:.5rem;font-style:normal;font-weight:700;}
.progress-badge { min-width:45px; padding:7px 8px; border-radius:9px; background:#edf7f1; color:#14703c; font-size:.72rem; font-weight:800; text-align:center; }
.verify-detail-list { display:flex; flex-direction:column; gap:10px; }
.verify-detail-row { display:grid; grid-template-columns:155px 1fr 34px; align-items:center; gap:9px; }.verify-detail-row div:first-child{display:flex;flex-direction:column}.verify-detail-row strong{font-size:.62rem}.verify-detail-row small{font-size:.5rem;color:#7e8983}.verify-detail-row em{font-size:.56rem;font-style:normal;font-weight:700;color:#246842;text-align:right;}
.marriage-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.marriage-grid > div { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:42px; padding:8px 9px; border:1px solid #ebefed; border-radius:8px; background:#fafcfb; }.marriage-grid span{font-size:.51rem;color:#68766e}.marriage-grid strong{font-size:.78rem;color:#1d2b23;}
.dash-activity-list { display:flex; flex-direction:column; gap:1px; max-height:180px; overflow:auto; }
.dash-activity { display:grid; grid-template-columns:10px 1fr; gap:7px; padding:6px 0; border-bottom:1px solid #eff2f0; }.dash-activity:last-child{border-bottom:0}.dash-activity > i{width:7px;height:7px;margin-top:4px;border-radius:50%;background:#1a9850;box-shadow:0 0 0 3px #e9f6ee}.dash-activity p{display:flex;flex-wrap:wrap;gap:3px;margin:0;font-size:.52rem;line-height:1.35}.dash-activity p strong{font-weight:700}.dash-activity p small{width:100%;color:#89948e;font-size:.46rem;}
.dash-quick-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 13px; border:1px solid #e4e9e6; border-radius:12px; background:#fff; }.dash-quick-actions > span{display:flex;flex-direction:column}.dash-quick-actions > span strong{font-size:.67rem}.dash-quick-actions > span small{font-size:.51rem;color:#7e8983}.dash-quick-actions > div{display:flex;flex-wrap:wrap;gap:6px}.dash-quick-actions .btn{font-size:.57rem;padding:.45rem .72rem;border-radius:8px;box-shadow:none;}

/* ===== RT dashboard ===== */
.rt-welcome-head { margin-bottom:14px; }
.rt-welcome-head h1 { font-size:1.55rem; }.rt-welcome-head h1 span{font-size:1.1rem}.rt-welcome-head p{font-size:.74rem;color:#3d4c44;}
.rt-period-card { display:flex; align-items:center; gap:9px; min-width:178px; min-height:42px; padding:0 13px; border:1px solid #e2e7e4; border-radius:10px; background:#fff; font-size:.72rem; font-weight:600; }
.rt-revision-alert { display:grid; grid-template-columns:32px 1fr auto; align-items:center; gap:10px; margin-bottom:12px; padding:9px 11px; border:1px solid #f0d296; border-radius:10px; background:#fff8e8; color:#704914; }.rt-revision-alert > i{font-size:1.05rem}.rt-revision-alert div{display:flex;flex-direction:column}.rt-revision-alert strong{font-size:.62rem}.rt-revision-alert span{font-size:.53rem;color:#916521}.rt-revision-alert a{padding:5px 9px;border-radius:7px;background:#ca7b0d;color:#fff;text-decoration:none;font-size:.54rem;font-weight:700;}
.rt-stat-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:11px; }
.rt-stat-card { --tone:#159447;--soft:#eaf8ef; min-height:118px; padding:14px; border:1px solid #e4e9e6; border-radius:13px; background:#fff; box-shadow:0 3px 14px rgba(17,52,36,.035); position:relative; overflow:hidden; }
.rt-stat-card:first-child:after { content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:#139247; }
.rt-stat-top { display:flex; align-items:center; gap:11px; }.rt-stat-top strong{font-size:1.7rem}.rt-stat-meta{margin-top:13px;}
.rt-main-grid { display:grid; grid-template-columns:.9fr 1.12fr; gap:12px; }
.rt-panel { padding:15px; }
.rt-report-status-body { display:flex; align-items:center; gap:17px; flex:1; padding:9px 6px; }
.rt-report-big-icon { width:115px; height:115px; flex:0 0 115px; display:grid; place-items:center; border-radius:50%; background:radial-gradient(circle at 40% 35%,#edf9f1,#e6f4eb); color:#138749; font-size:3.1rem; }
.rt-report-copy { flex:1; min-width:0; }.rt-report-copy > small{display:block;color:#28372f;font-size:.69rem;font-weight:700}.rt-report-copy h2{margin:6px 0;color:#118444;font-size:1.1rem;font-weight:800}.rt-report-copy p{margin:4px 0 8px;color:#65736b;font-size:.58rem}.rt-report-actions{display:flex;gap:8px;margin-top:12px}.rt-report-actions .btn{font-size:.59rem;padding:.48rem .78rem;border-radius:8px;}
.rt-change-layout { display:grid; grid-template-columns:1.35fr .78fr; gap:12px; flex:1; }
.rt-change-grid { display:grid; grid-template-columns:1fr 1fr; border:1px solid #edf0ee; border-radius:9px; overflow:hidden; }.rt-change-grid > div:nth-child(2n){border-right:0}.rt-change-grid > div:nth-last-child(-n+2){border-bottom:0}.rt-change-grid > div{min-height:76px}.rt-change-grid p strong{font-size:1.25rem;}
.rt-need-report { display:flex; flex-direction:column; padding:11px; border:1px solid #cde8d5; border-radius:10px; background:#f2fbf5; }.rt-need-report > strong{color:#16713d;font-size:.64rem;text-transform:uppercase}.rt-need-report ul{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:7px;}.rt-need-report li{display:grid;grid-template-columns:15px 1fr auto;align-items:center;gap:6px;font-size:.58rem;color:#314138}.rt-need-report li i{color:#68847a}.rt-need-report li em{min-width:27px;padding:3px 6px;border-radius:99px;background:#dff4e6;color:#176e3c;text-align:center;font-style:normal;font-weight:800}.rt-need-report .btn{margin-top:auto;border-radius:8px;font-size:.58rem;padding:.48rem .7rem;}
.rt-lower-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:12px; }
.rt-table-wrap { flex:1; border:1px solid #edf0ee; border-radius:9px; max-height:none; }.rt-modern-table{min-width:560px}.rt-modern-table thead th{position:static;padding:7px 8px;background:#f7f9f8;color:#2f3e36;font-size:.52rem;text-transform:none}.rt-modern-table td{padding:7px 8px;border-color:#edf0ee;color:#34433b;font-size:.54rem}.rt-modern-table td:first-child,.rt-modern-table th:first-child{text-align:left}.rt-modern-table td strong{font-size:.56rem;}
.rt-history-list { display:flex; flex-direction:column; gap:7px; flex:1; }.rt-history-item{display:grid;grid-template-columns:36px 1fr auto 12px;align-items:center;gap:8px;min-height:54px;padding:7px 9px;border:1px solid #e5eae7;border-radius:9px;color:inherit;text-decoration:none}.rt-history-item:first-child{border-color:#c8e6d2;background:#f5fbf7}.rt-history-item:hover{border-color:#c4d9cc;background:#f9fcfa}.rt-history-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#edf7f1;color:#138448}.rt-history-item p{display:flex;flex-direction:column;margin:0}.rt-history-item p strong{font-size:.59rem}.rt-history-item p small{margin-top:2px;color:#7c8882;font-size:.48rem}.rt-history-item > i:last-child{color:#7d8b83;font-size:.65rem}.rt-history-item .status-pill{font-size:.5rem;}
.rt-extra-grid { display:grid; grid-template-columns:1fr .82fr; gap:12px; }.rt-check-list{display:flex;flex-direction:column;gap:6px}.rt-check-list > div{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;min-height:50px;padding:6px 8px;border:1px solid #edf0ee;border-radius:8px}.check-circle{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#f0f3f1;color:#738078}.check-circle.success{background:#e9f8ef;color:#138a47}.check-circle.danger{background:#fff0f1;color:#e33a45}.check-circle.blue{background:#edf5ff;color:#2c7be5}.rt-check-list p{display:flex;flex-direction:column;margin:0}.rt-check-list p strong{font-size:.57rem}.rt-check-list p small{font-size:.48rem;color:#859089}.rt-check-list .status-pill{font-size:.48rem;}
.rt-history-chart { min-height:195px; flex:1; position:relative; }
.rt-note-list { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.rt-note-list > div{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #e6ebe8;border-radius:9px;background:#fbfcfb}.rt-note-list > div > i{color:#118147}.rt-note-list p{display:flex;flex-direction:column;margin:0}.rt-note-list p strong{font-size:.59rem}.rt-note-list p span{margin-top:2px;color:#6f7c75;font-size:.53rem;line-height:1.45;}

/* ===== Responsive modern shell/dashboard ===== */
@media (max-width: 1399.98px) {
  .dash-stat-grid { grid-template-columns:repeat(3,1fr); }
  .dash-stat-card { min-height:120px; }
  .dash-grid-3 { grid-template-columns:1fr 1fr; }.dash-grid-3 .dash-chart-panel{grid-column:1/-1;min-height:310px}
  .dash-grid-bottom { grid-template-columns:1.35fr .8fr; }.dash-grid-bottom > :last-child{grid-column:1/-1}
  .dash-grid-extra { grid-template-columns:1fr 1fr; }.dash-grid-extra > :last-child{grid-column:1/-1}
}
@media (max-width: 1199.98px) {
  .lampid-shell-body { --shell-sidebar:214px; }
  .lampid-main { padding-inline:16px; }
  .rt-stat-grid { grid-template-columns:repeat(3,1fr); }.rt-stat-card:nth-child(n+4){grid-column:span 1}.rt-main-grid,.rt-lower-grid,.rt-extra-grid{grid-template-columns:1fr}.rt-change-layout{grid-template-columns:1.2fr .8fr}
}
@media (max-width: 991.98px) {
  .lampid-sidebar { width:236px; transform:translateX(-102%); box-shadow:16px 0 40px rgba(2,30,22,.22); }
  .lampid-shell-content,body.sidebar-collapsed .lampid-shell-content { margin-left:0; }
  body.sidebar-open .lampid-sidebar { transform:translateX(0); }
  body.sidebar-open .lampid-sidebar-overlay { display:block; }
  body.sidebar-collapsed .lampid-sidebar { width:236px; }
  body.sidebar-collapsed .lampid-brand-copy,body.sidebar-collapsed .lampid-side-link span,body.sidebar-collapsed .lampid-side-badge,body.sidebar-collapsed .lampid-user-card div,body.sidebar-collapsed .lampid-area-card div,body.sidebar-collapsed .lampid-collapse-btn span { opacity:1; width:auto; pointer-events:auto; }
  body.sidebar-collapsed .lampid-side-link { justify-content:flex-start; padding-inline:12px; }
  body.sidebar-collapsed .lampid-user-card,body.sidebar-collapsed .lampid-area-card{justify-content:flex-start;padding:10px}
  .lampid-collapse-btn { display:none; }
  .lampid-topbar { padding-inline:14px; }.lampid-topbar-page{display:none}.lampid-main{padding-top:14px}.lampid-shell-footer{padding-inline:16px}
  .dash-grid-bottom,.dash-grid-extra{grid-template-columns:1fr}.dash-grid-bottom > :last-child,.dash-grid-extra > :last-child{grid-column:auto}.dash-status-table-panel{min-height:auto}
}
@media (max-width: 767.98px) {
  .lampid-topbar { min-height:58px; }.lampid-topbar-right{gap:8px}.lampid-notification{padding-left:8px}.lampid-main{padding:12px 10px 22px}.lampid-shell-footer{flex-direction:column;align-items:center;text-align:center;gap:3px}
  .dash-page-head,.rt-welcome-head{align-items:flex-start;flex-direction:column;gap:9px}.dash-page-head h1,.rt-welcome-head h1{font-size:1.25rem}.dash-period-select,.rt-period-card{width:100%;justify-content:center}.dash-period-select select{flex:1}
  .dash-stat-grid { grid-template-columns:1fr 1fr; gap:8px; }.dash-stat-card{min-height:108px;padding:11px}.dash-stat-main strong{font-size:1.28rem}.dash-stat-icon{width:36px;height:36px;flex-basis:36px}.dash-stat-main small{font-size:.52rem}.dash-stat-meta{font-size:.5rem;margin-top:7px}.dash-spark-wrap{height:27px}
  .dash-grid-3{grid-template-columns:1fr}.dash-grid-3 .dash-chart-panel{grid-column:auto;min-height:300px}.dash-panel,.rt-panel{padding:12px;border-radius:11px}.report-progress-layout{grid-template-columns:115px 1fr;gap:10px}.report-donut{width:108px;height:108px}.report-donut:after{inset:15px}.report-donut strong{font-size:1.12rem}.gender-layout{justify-content:flex-start}.gender-donut{width:112px;height:112px;flex-basis:112px}.dash-quick-actions{align-items:flex-start;flex-direction:column}.dash-quick-actions > div{width:100%}.dash-quick-actions .btn{flex:1 1 45%}.verify-detail-row{grid-template-columns:125px 1fr 31px}.marriage-grid{grid-template-columns:1fr}
  .rt-stat-grid{grid-template-columns:1fr 1fr;gap:8px}.rt-stat-card{min-height:105px;padding:11px}.rt-stat-top strong{font-size:1.35rem}.rt-stat-icon{width:36px;height:36px;flex-basis:36px}.rt-stat-card:first-child{grid-column:1/-1}.rt-report-status-body{align-items:flex-start;flex-direction:column}.rt-report-big-icon{width:88px;height:88px;flex-basis:88px;font-size:2.35rem}.rt-report-copy{width:100%}.rt-report-actions{flex-wrap:wrap}.rt-report-actions .btn{flex:1}.rt-change-layout{grid-template-columns:1fr}.rt-change-grid>div{min-height:66px}.rt-note-list{grid-template-columns:1fr}.rt-history-item{grid-template-columns:32px 1fr 12px}.rt-history-item .status-pill{grid-column:2;justify-self:start}.rt-revision-alert{grid-template-columns:28px 1fr}.rt-revision-alert a{grid-column:2;justify-self:start}
}
@media (max-width: 479.98px) {
  .dash-stat-grid{grid-template-columns:1fr}.dash-stat-card{min-height:96px}.dash-stat-main{align-items:flex-start}.dash-spark-wrap{left:48%;}.verify-mini-grid{grid-template-columns:1fr}.verify-mini-grid>div{border-right:0!important;border-bottom:1px solid #edf0ee!important}.verify-mini-grid>div:last-child{border-bottom:0!important}.report-progress-layout{grid-template-columns:1fr}.report-progress-copy{width:100%}.gender-layout{flex-direction:column;align-items:center}.gender-legend{width:100%;flex-direction:row;justify-content:center}.rt-stat-grid{grid-template-columns:1fr}.rt-stat-card:first-child{grid-column:auto}.rt-change-grid{grid-template-columns:1fr}.rt-change-grid>div{border-right:0!important;border-bottom:1px solid #edf0ee!important}.rt-change-grid>div:last-child{border-bottom:0!important}
}

@media print {
  .lampid-shell-body { background:#fff!important; }
  .lampid-sidebar,.lampid-topbar,.lampid-sidebar-overlay,.lampid-shell-footer { display:none!important; }
  .lampid-shell-content { margin-left:0!important; }
  .lampid-main { max-width:none!important; padding:0!important; }
}


/* ===== MOBILE COMFORT FIX — FORM LAPORAN RT ===== */
.rt-mobile-jump{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;margin:-4px 0 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.rt-mobile-jump::-webkit-scrollbar{display:none}
.rt-mobile-jump .btn{flex:0 0 auto;border-radius:999px;font-size:.76rem;padding:.5rem .82rem;white-space:nowrap}

@media (max-width: 767.98px){
  .rt-wide-report-page .lampid-main{padding:12px 10px 28px}
  .rt-wide-report-page .lampid-topbar-right{gap:6px}
  .rt-wide-report-page h4{font-size:1.02rem;line-height:1.35}
  .rt-wide-report-page .alert{border-radius:14px}
  .rt-wide-report-page .btn-group.no-print{width:100%}
  .rt-wide-report-page .btn-group.no-print .btn{flex:1 1 0}
  .rt-wide-report-page .btn-group[role="group"]{display:flex;flex-wrap:wrap;gap:8px}
  .rt-wide-report-page .btn-group[role="group"] .btn{flex:1 1 calc(50% - 4px);border-radius:12px !important}
  .rt-wide-report-page .btn-group[role="group"] > .btn-check + .btn{margin-left:0}
  .rt-wide-report-page .form-text{font-size:.76rem;line-height:1.5}

  /* Form laporan di HP harus berbentuk kartu penuh, bukan tabel lebar. */
  .rt-wide-report-page .mobile-form-cards{
    width:100% !important;
    overflow:visible !important;
    overflow-x:visible !important;
    display:block !important;
  }
  .rt-wide-report-page .mobile-form-cards > table,
  .rt-wide-report-page .mobile-form-cards > .lampid-mobile-table{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    table-layout:fixed !important;
  }

  /* Jangan terapkan aturan tabel geser horizontal ke form laporan. */
  .rt-wide-report-page .mobile-form-cards th,
  .rt-wide-report-page .mobile-form-cards td{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }

  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table{display:block;border:0;width:100% !important}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table thead{display:none}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table tbody,
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table tr{display:block;width:100%}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table tr{
    margin-bottom:10px;
    border:1px solid #e1e8e4;
    border-radius:14px;
    background:#fff;
    padding:10px;
    box-shadow:0 2px 7px rgba(20,40,30,.04);
  }
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table tr.table-success,
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table tr.table-warning{background:#f5faf7}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table td{display:block;border:0 !important;padding:4px 0 !important;text-align:left !important}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table td:first-child{font-size:.86rem;font-weight:700;padding-bottom:8px !important;border-bottom:1px solid #edf1ee !important;margin-bottom:6px}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table td:not(:first-child)::before{display:block;font-size:.66rem;font-weight:700;color:#718078;margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table td:nth-child(2)::before{content:'Laki-laki'}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table td:nth-child(3)::before{content:'Perempuan'}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table td:nth-child(4)::before{content:'Jumlah (L+P)'}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table .form-control{min-height:44px;font-size:16px;margin-bottom:2px}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table td:nth-child(4) .form-control{background:#eef5ff !important}
  .rt-wide-report-page .mobile-form-cards .lampid-mobile-table .badge{font-size:.62rem;vertical-align:middle}

  .rt-wide-report-page #form-lampid .lampid-mobile-table tr,
  .rt-wide-report-page #form-ktp .lampid-mobile-table tr,
  .rt-wide-report-page #form-usia .lampid-mobile-table tr:not(:last-child){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:8px}
  .rt-wide-report-page #form-lampid .lampid-mobile-table td:first-child,
  .rt-wide-report-page #form-ktp .lampid-mobile-table td:first-child,
  .rt-wide-report-page #form-usia .lampid-mobile-table tr:not(:last-child) td:first-child{grid-column:1/-1}
  .rt-wide-report-page #form-lampid .lampid-mobile-table td:nth-child(4),
  .rt-wide-report-page #form-ktp .lampid-mobile-table td:nth-child(4),
  .rt-wide-report-page #form-usia .lampid-mobile-table tr:not(:last-child) td:nth-child(4){grid-column:1/-1}

  .rt-wide-report-page .sticky-actions{
    position:sticky;
    bottom:calc(env(safe-area-inset-bottom) + 8px);
    z-index:25;
    background:rgba(255,255,255,.97);
    box-shadow:0 -8px 20px rgba(14,29,22,.08);
    backdrop-filter:blur(8px);
    padding:8px;
    border-radius:14px;
  }
  .rt-wide-report-page .sticky-actions .btn{flex:1;min-height:48px;font-size:.82rem;padding:.45rem .55rem}
  .rt-wide-report-page .lampid-main{padding-bottom:110px}

  .rt-wide-report-page .row.g-3 > [class*="col-"]{width:100%}
  .rt-wide-report-page .row.g-3{row-gap:12px}
}


/* ===== HOTFIX OVERLAP — RT laporan di HP ===== */
@media (max-width: 767.98px){
  /* Tombol simpan per bagian harus ikut alur normal, jangan menimpa isi. */
  .rt-wide-report-page #form-rumah > .btn,
  .rt-wide-report-page #form-usia > .btn,
  .rt-wide-report-page #form-ktp > .btn{
    display:block !important;
    width:100% !important;
    position:static !important;
    margin-top:14px !important;
    clear:both !important;
    z-index:1 !important;
  }

  .rt-wide-report-page #form-rumah .table-responsive,
  .rt-wide-report-page #form-usia .table-responsive,
  .rt-wide-report-page #form-ktp .table-responsive{
    margin-bottom:14px !important;
  }

  /* Aksi utama jangan sticky di HP karena bisa menutup bagian lain saat scroll panjang. */
  .rt-wide-report-page .sticky-actions{
    position:static !important;
    bottom:auto !important;
    background:none !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    padding:0 !important;
    border-radius:0 !important;
    margin-top:14px !important;
  }

  /* Beri ruang bawah agar tombol kembali ke atas tidak menutup field terakhir. */
  .rt-wide-report-page .lampid-main{padding-bottom:88px !important;}

  /* Tombol kembali ke atas diperkecil dan dipindah agar tidak mengganggu area form. */
  .rt-wide-report-page #backToTop{
    right:10px !important;
    bottom:10px !important;
    width:38px !important;
    height:38px !important;
    opacity:.92;
  }
}


/* =====================================================================
   RT LAPORAN MOBILE V3 — layout div murni, tanpa transformasi tabel.
   Dibuat untuk mencegah baris/input/tombol saling menimpa di layar HP.
   ===================================================================== */
.report-data-grid{width:100%;display:flex;flex-direction:column;gap:0;border:1px solid #e3e9e5;border-radius:14px;overflow:hidden;background:#fff}
.report-grid-head,.report-grid-row{display:grid;grid-template-columns:minmax(160px,1.25fr) repeat(3,minmax(110px,1fr));align-items:center}
.report-grid-head{background:#f5f8f6;color:#516159;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.report-grid-head>div{padding:10px 12px;border-right:1px solid #e6ece8}.report-grid-head>div:last-child{border-right:0}
.report-grid-row{border-top:1px solid #e7ece9}.report-grid-row:first-of-type{border-top:0}
.report-grid-label{padding:12px;font-weight:700;color:#25362d}
.report-grid-field{padding:8px 10px;border-left:1px solid #e7ece9;min-width:0}
.report-grid-field label{display:none;font-size:.66rem;font-weight:800;color:#718078;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.report-grid-field .form-control{width:100%;min-width:0}
.report-grid-result{background:#f2faf5}.report-grid-warning{background:#fff9e8}
.report-requirements{position:static!important;clear:both;overflow:visible!important}
.report-main-actions{display:flex;gap:10px;position:static!important;clear:both;margin-top:12px}.report-main-actions .btn{min-height:44px}

@media(max-width:767.98px){
  .rt-wide-report-page .card{overflow:visible!important}
  .rt-wide-report-page form{overflow:visible!important}
  .rt-wide-report-page .report-data-grid{border:0;background:transparent;overflow:visible;gap:10px}
  .rt-wide-report-page .report-grid-head{display:none}
  .rt-wide-report-page .report-grid-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px;
    width:100%!important;
    min-width:0!important;
    position:static!important;
    border:1px solid #e1e8e4!important;
    border-radius:14px;
    padding:10px;
    background:#fff;
    box-shadow:0 2px 7px rgba(20,40,30,.04);
    overflow:visible!important;
  }
  .rt-wide-report-page .report-grid-row.report-grid-result{background:#f2faf5}
  .rt-wide-report-page .report-grid-row.report-grid-warning{background:#fff9e8}
  .rt-wide-report-page .report-grid-label{grid-column:1/-1;padding:0 0 8px;border-bottom:1px solid #edf1ee;font-size:.86rem;line-height:1.35}
  .rt-wide-report-page .report-grid-field{padding:0;border:0;min-width:0;position:static!important}
  .rt-wide-report-page .report-grid-field label{display:block}
  .rt-wide-report-page .report-grid-total{grid-column:1/-1}
  .rt-wide-report-page .report-grid-field .form-control{min-height:44px;font-size:16px!important;margin:0!important}
  .rt-wide-report-page .report-grid-total .form-control{background:#eef5ff!important}

  .rt-wide-report-page .report-requirements{
    display:block!important;
    width:100%!important;
    position:static!important;
    float:none!important;
    clear:both!important;
    margin:14px 0 10px!important;
    z-index:auto!important;
  }
  .rt-wide-report-page .report-requirements .small>div{padding:2px 0;line-height:1.4}

  .rt-wide-report-page .report-main-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
    position:static!important;
    float:none!important;
    clear:both!important;
    margin:10px 0 0!important;
    z-index:auto!important;
  }
  .rt-wide-report-page .report-main-actions .btn{width:100%!important;min-height:46px;white-space:normal;line-height:1.25}
  .rt-wide-report-page .report-main-actions .btn:disabled{opacity:.68}

  /* Tombol kembali ke atas disembunyikan pada form panjang agar tidak pernah menutup input. */
  .rt-wide-report-page #backToTop{display:none!important}

  /* Jarak antar section yang jelas agar tidak terlihat saling bertumpuk. */
  .rt-wide-report-page #bagian-lampid,
  .rt-wide-report-page #bagian-rumah,
  .rt-wide-report-page #bagian-usia,
  .rt-wide-report-page #bagian-ktp{scroll-margin-top:72px;margin-bottom:16px!important}

  .rt-wide-report-page #form-rumah .row.g-3{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin:0!important}
  .rt-wide-report-page #form-rumah .row.g-3>[class*="col-"]{width:auto!important;padding:0!important}
  .rt-wide-report-page #form-rumah .row.g-3>[class*="col-"]:last-child{grid-column:1/-1}
  .rt-wide-report-page #form-rumah>.btn,
  .rt-wide-report-page #form-usia>.btn,
  .rt-wide-report-page #form-ktp>.btn{width:100%!important;position:static!important;display:block!important;margin-top:12px!important}
}

/* =====================================================================
   RT LAPORAN MOBILE V4 — alur bertahap, accordion, progres, ringkasan.
   Fokus: nyaman dikerjakan dari HP tanpa elemen menutup input.
   ===================================================================== */
.rt-report-page-head{margin-top:2px}
.rt-period-info{margin-bottom:12px}
.rt-report-progress{background:#fff;border:1px solid #e0e8e3;border-radius:14px;padding:14px 16px;margin-bottom:12px;box-shadow:0 4px 16px rgba(20,40,30,.04)}
.rt-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.rt-progress-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.rt-progress-head>div strong{font-size:.86rem;color:#21342a}.rt-progress-head>div span{font-size:.68rem;color:#78857e}.rt-progress-head>strong{font-size:.88rem;color:#14844a}
.rt-report-progress .progress{height:7px;border-radius:999px;background:#edf2ef;overflow:hidden}.rt-report-progress .progress-bar{background:#13884b;border-radius:999px}
.rt-progress-steps{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap}.rt-progress-step{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;text-decoration:none;font-size:.7rem;font-weight:700;border:1px solid #e1e7e3;color:#6d7972;background:#f8faf9}.rt-progress-step.done{color:#167341;background:#edf8f1;border-color:#cce8d5}.rt-progress-step.pending i{color:#a9b1ad}

.rt-report-section{scroll-margin-top:74px;overflow:hidden!important}
.rt-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.rt-section-heading .section-title{margin:0}.rt-section-heading small{display:block;color:#7a8780;font-size:.7rem;margin-top:2px}.rt-section-heading-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.rt-step-state{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:.65rem;font-weight:800;white-space:nowrap;background:#f5f6f5;color:#748078}.rt-step-state.done{background:#eaf7ef;color:#167341}.rt-section-toggle{width:36px;height:36px;display:grid;place-items:center;border:1px solid #dce5df;border-radius:10px;background:#fff;color:#315443;padding:0}
.rt-section-body{min-width:0}.rt-source-box{background:rgba(47,111,78,.055);border:1px solid rgba(47,111,78,.13);border-radius:12px;padding:13px}
.rt-section-actions{display:flex;align-items:center;gap:9px;margin-top:14px;position:static!important;clear:both}.rt-section-actions .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.rt-fill-mode .btn{white-space:nowrap}

.rt-final-summary{scroll-margin-top:74px;border:1px solid #cfe4d7!important;background:linear-gradient(145deg,#fff,#f5fbf7)}
.rt-summary-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.rt-summary-title h5{font-weight:800;color:#1f3429}.rt-summary-title p{font-size:.74rem;color:#6f7d75;line-height:1.5}.rt-summary-title>i{font-size:2rem;color:#17814a;background:#e7f5ec;width:50px;height:50px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto}
.rt-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}.rt-summary-grid>div{padding:11px 12px;border:1px solid #e2e9e5;border-radius:11px;background:#fff;display:flex;flex-direction:column;gap:3px;min-width:0}.rt-summary-grid>div span{font-size:.65rem;color:#718078}.rt-summary-grid>div strong{font-size:1.15rem;color:#1f3027}.rt-summary-grid>div.primary{background:#ecf8f0;border-color:#c8e6d2}.rt-summary-grid>div.primary strong{color:#117a42}
.rt-final-checks{padding:13px 14px;border-radius:12px;margin-bottom:14px}.rt-final-checks.is-ready{background:#edf8f1;border:1px solid #c7e6d2;color:#225b3c}.rt-final-checks.is-pending{background:#fff8e2;border:1px solid #f0dfab;color:#6f5a18}.rt-final-check-list{display:flex;flex-wrap:wrap;gap:7px 14px}.rt-final-check-list span{display:inline-flex;align-items:center;gap:5px;font-size:.72rem}.rt-final-check-list .done{color:#187443;font-weight:700}
.rt-final-actions{display:flex;gap:10px}.rt-final-actions .btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:6px}

@media (max-width: 767.98px){
  .rt-wide-report-page .lampid-main{padding:10px 9px 84px!important}
  .rt-report-page-head{gap:10px}.rt-report-page-head>div:first-child{width:100%}.rt-report-page-head h4{font-size:1.06rem!important}.rt-period-nav{width:100%;display:grid!important;grid-template-columns:1fr 1fr}.rt-period-nav .btn{min-height:42px;font-size:.73rem;white-space:normal;line-height:1.2}
  .rt-period-info{padding:10px 12px!important;font-size:.8rem}.rt-report-legend{font-size:.65rem!important;line-height:1.6}
  .rt-report-progress{padding:12px;margin-bottom:10px}.rt-progress-head>div{display:block}.rt-progress-head>div span{display:block;margin-top:2px}.rt-progress-steps{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.rt-progress-steps::-webkit-scrollbar{display:none}.rt-progress-step{flex:0 0 auto;padding:6px 9px}
  .rt-mobile-jump{margin:0 0 10px}

  .rt-wide-report-page .rt-report-section{padding:12px!important;border-radius:14px!important;margin-bottom:11px!important;overflow:hidden!important}
  .rt-section-heading{margin-bottom:0;min-height:42px;align-items:center}.rt-section-heading>div:first-child{min-width:0}.rt-section-heading .section-title{font-size:.9rem!important;line-height:1.35;margin:0!important}.rt-section-heading small{font-size:.66rem;line-height:1.35}.rt-section-heading-actions{gap:5px}.rt-step-state{font-size:.59rem;padding:4px 7px}.rt-section-toggle{width:34px;height:34px;flex:0 0 34px}
  .rt-section-body{padding-top:12px}.rt-report-section.is-collapsed .rt-section-heading{margin-bottom:0}
  .rt-source-box{padding:11px}.rt-fill-mode{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}.rt-fill-mode .btn{width:100%;font-size:.7rem!important;white-space:normal;line-height:1.2}
  .rt-age-source-actions{display:block!important}.rt-age-source-actions .btn-group{width:100%;display:grid!important;grid-template-columns:1fr 1fr!important}.rt-age-source-actions>.btn{width:100%;margin-top:8px;min-height:42px}

  .rt-wide-report-page .report-data-grid{gap:8px!important}.rt-wide-report-page .report-grid-row{padding:9px!important;gap:7px!important;border-radius:12px!important}.rt-wide-report-page .report-grid-label{font-size:.82rem!important;padding-bottom:7px!important}.rt-wide-report-page .report-grid-field label{font-size:.61rem!important;margin-bottom:3px!important}.rt-wide-report-page .report-grid-field .form-control{height:43px!important;min-height:43px!important;font-size:16px!important;padding:.48rem .58rem!important}

  .rt-house-grid{grid-template-columns:1fr 1fr!important;gap:9px!important}.rt-house-grid>[class*="col-"]{width:auto!important}.rt-house-grid>[class*="col-"]:last-child{grid-column:1/-1}.rt-house-grid .form-label{font-size:.72rem!important;margin-bottom:4px}
  .rt-section-actions{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin-top:12px!important}.rt-section-actions .btn{width:100%!important;min-height:46px!important;font-size:.77rem!important;white-space:normal;line-height:1.25}

  .rt-summary-title{margin-bottom:12px}.rt-summary-title>i{width:42px;height:42px;font-size:1.55rem}.rt-summary-title h5{font-size:1rem}.rt-summary-title p{font-size:.7rem}.rt-summary-grid{grid-template-columns:1fr 1fr;gap:7px}.rt-summary-grid>div{padding:9px 10px}.rt-summary-grid>div span{font-size:.61rem}.rt-summary-grid>div strong{font-size:1rem}.rt-summary-grid>div.primary{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.rt-final-checks{padding:11px}.rt-final-check-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.rt-final-check-list span{font-size:.68rem}.rt-final-actions{display:grid;grid-template-columns:1fr;gap:7px}.rt-final-actions .btn{width:100%;min-height:48px;font-size:.78rem;white-space:normal;line-height:1.25}

  /* Tidak ada tombol mengambang pada form panjang. */
  .rt-wide-report-page #backToTop{display:none!important}
  .rt-wide-report-page .sticky-actions{position:static!important}
}

@media (max-width: 360px){
  .rt-house-grid{grid-template-columns:1fr!important}.rt-house-grid>[class*="col-"]:last-child{grid-column:auto}.rt-summary-grid{grid-template-columns:1fr}.rt-summary-grid>div.primary{grid-column:auto}.rt-final-check-list{grid-template-columns:1fr}.rt-step-state{display:none}.rt-section-heading-actions{gap:0}
}

/* =====================================================================
   TENTANG APLIKASI — profil pengembang dan identitas LAMPID
   ===================================================================== */
.about-app-page{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.about-hero-card{display:flex;align-items:center;gap:22px;padding:26px 28px;border:1px solid #dce9e1;border-radius:18px;background:linear-gradient(135deg,#f4fbf7 0%,#fff 55%,#eef8f2 100%);box-shadow:0 8px 26px rgba(20,58,39,.06)}.about-hero-mark{width:86px;height:86px;flex:0 0 86px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,#0d6b42,#084d35);color:#fff;font-size:2.25rem;box-shadow:0 12px 24px rgba(10,88,56,.2)}.about-hero-copy{min-width:0}.about-kicker,.about-panel-eyebrow{font-size:.66rem;letter-spacing:.11em;font-weight:800;color:#198253}.about-hero-copy h1{margin:4px 0 6px;font-size:1.7rem;font-weight:800;color:#183327}.about-hero-copy p{max-width:780px;margin:0;color:#65756d;font-size:.84rem;line-height:1.65}.about-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.about-badges span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #d9e7de;border-radius:999px;background:#fff;color:#496258;font-size:.68rem;font-weight:700}.about-main-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.about-panel{padding:20px;border:1px solid #e0e8e3;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(24,55,40,.045)}.about-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.about-panel-head h2{margin:3px 0 0;font-size:1.05rem;font-weight:800;color:#20372c}.about-panel-head>i{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:12px;background:#edf8f1;color:#137c47;font-size:1.1rem}.developer-profile-head{display:flex;align-items:center;gap:13px;padding:13px;border-radius:13px;background:#f5faf7;margin-bottom:14px}.developer-avatar{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#0d7447,#0a5a3a);color:#fff;font-size:1.05rem;font-weight:800;letter-spacing:.03em}.developer-profile-head h3{margin:0 0 3px;font-size:1rem;font-weight:800;color:#1f3429}.developer-profile-head p{margin:0;color:#738079;font-size:.7rem;line-height:1.4}.developer-info-list{display:flex;flex-direction:column}.developer-info-row{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf1ef}.developer-info-row:last-child{border-bottom:0}.developer-info-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#f0f7f3;color:#1b7b4d}.developer-info-row div{display:flex;flex-direction:column;min-width:0}.developer-info-row small{font-size:.62rem;color:#87938c}.developer-info-row strong{margin-top:2px;font-size:.77rem;color:#293b32;line-height:1.35}.developer-contact-actions{display:flex;gap:8px;margin-top:15px}.developer-contact-actions .btn{border-radius:10px;font-size:.72rem;font-weight:700;padding:.55rem .8rem}.about-copy,.about-bio-card p{color:#627169;font-size:.78rem;line-height:1.7;margin:0}.about-feature-list{display:flex;flex-direction:column;margin-top:13px}.about-feature-list>div{display:grid;grid-template-columns:22px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid #edf1ef}.about-feature-list>div:last-child{border-bottom:0}.about-feature-list i{color:#149053;font-size:.9rem;margin-top:1px}.about-feature-list span{display:flex;flex-direction:column}.about-feature-list strong{font-size:.75rem;color:#2a3d33}.about-feature-list small{margin-top:2px;color:#7b8881;font-size:.66rem;line-height:1.45}.about-bio-card p+p{margin-top:10px}.about-identity-card{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:16px;padding:18px 20px;border-radius:16px;background:#073f30;color:#fff;box-shadow:0 8px 24px rgba(4,48,35,.16)}.about-identity-logo{width:56px;height:56px;display:grid;place-items:center;border-radius:15px;background:rgba(255,255,255,.12);font-size:1.55rem}.about-identity-copy span{font-size:.58rem;letter-spacing:.11em;font-weight:800;color:#9dd5bc}.about-identity-copy h2{margin:3px 0 1px;font-size:1.05rem;font-weight:800}.about-identity-copy p{margin:0;color:#c9ded4;font-size:.68rem}.about-identity-meta{display:flex;flex-direction:column;text-align:right}.about-identity-meta small{font-size:.6rem;color:#9fc8b5}.about-identity-meta strong{font-size:.78rem;margin:2px 0 4px}.about-identity-meta span{font-size:.62rem;color:#b9d3c7}.about-motto{display:flex;align-items:center;justify-content:center;gap:10px;padding:7px 12px;color:#738079;font-size:.7rem;text-align:center}.about-motto i{color:#14834b;font-size:1rem}
@media(max-width:767.98px){.about-app-page{gap:11px}.about-hero-card{align-items:flex-start;padding:16px;border-radius:14px;gap:12px}.about-hero-mark{width:54px;height:54px;flex-basis:54px;border-radius:14px;font-size:1.35rem}.about-hero-copy h1{font-size:1.2rem}.about-hero-copy p{font-size:.73rem;line-height:1.55}.about-kicker{font-size:.56rem}.about-badges{margin-left:-66px;margin-top:13px}.about-main-grid{grid-template-columns:1fr;gap:11px}.about-panel{padding:15px;border-radius:14px}.about-panel-head{margin-bottom:12px}.about-panel-head h2{font-size:.96rem}.developer-profile-head{padding:11px}.developer-avatar{width:50px;height:50px;flex-basis:50px}.developer-profile-head h3{font-size:.9rem}.developer-contact-actions{display:grid;grid-template-columns:1fr 1fr}.developer-contact-actions .btn{min-height:44px;display:flex;align-items:center;justify-content:center;white-space:normal;line-height:1.2}.about-copy,.about-bio-card p{font-size:.73rem}.about-identity-card{grid-template-columns:48px 1fr;gap:11px;padding:15px}.about-identity-logo{width:46px;height:46px;border-radius:12px}.about-identity-meta{grid-column:1/-1;text-align:left;padding-top:10px;border-top:1px solid rgba(255,255,255,.12)}.about-motto{font-size:.66rem;line-height:1.45}}
@media(max-width:360px){.developer-contact-actions{grid-template-columns:1fr}.about-badges span{font-size:.62rem}.about-hero-mark{display:none}.about-badges{margin-left:0}}


/* =======================================================================
   PATCH UI-01 (11/10/2026): perbaikan ergonomi RT, Admin, RW
   Hanya presentasi. Tidak mengubah logika laporan atau database.
   ======================================================================= */

/* Judul dan identitas tetap terbaca pada layar laptop; label tidak menabrak. */
.lampid-topbar { min-width:0; }
.lampid-topbar-left { flex:1 1 auto; min-width:0; }
.lampid-topbar-right { flex:0 1 auto; min-width:0; }
.lampid-topbar-page { max-width: min(35vw, 420px); }
.lampid-topbar-page span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lampid-global-search { flex:0 1 310px; min-width:160px; }
.lampid-top-user { flex:0 1 auto; min-width:0; }
.lampid-top-user strong,.lampid-top-user small { display:block; max-width:145px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lampid-sidebar-nav { overscroll-behavior:contain; }
.lampid-side-link:focus-visible,.lampid-menu-toggle:focus-visible,.lampid-collapse-btn:focus-visible {
  outline:3px solid #e8cd51; outline-offset:2px;
}

/* Form panjang: isi yang bergerak, bukan header/footer atau halaman di belakang. */
#modalPenduduk .modal-dialog-scrollable .modal-content,
#modalKeluar .modal-dialog-scrollable .modal-content,
#modalAktivasi .modal-dialog-scrollable .modal-content,
#modalUser .modal-dialog-scrollable .modal-content,
#modalDownloadPenduduk .modal-dialog-scrollable .modal-content {
  display:flex; flex-direction:column; min-height:0; overflow:hidden;
}
#modalPenduduk .modal-body,
#modalKeluar .modal-body,
#modalAktivasi .modal-body,
#modalUser .modal-body,
#modalDownloadPenduduk .modal-body { min-height:0; overscroll-behavior:contain; }
#modalPenduduk .modal-footer,
#modalKeluar .modal-footer,
#modalAktivasi .modal-footer,
#modalUser .modal-footer,
#modalDownloadPenduduk .modal-footer {
  flex-shrink:0; background:#fff; gap:8px;
  box-shadow:0 -3px 13px rgba(0,0,0,.05);
}
#modalPenduduk .modal-footer .btn,
#modalKeluar .modal-footer .btn,
#modalAktivasi .modal-footer .btn,
#modalUser .modal-footer .btn,
#modalDownloadPenduduk .modal-footer .btn { min-height:39px; }

/* Tabel data RT berisi 11 kolom; informasi tidak boleh dipotong paksa.
   Bila ruang tidak cukup, scroll horizontal berlaku pada desktop dan HP. */
.rt-penduduk-page.lampid-shell-body .penduduk-table-card { overflow:hidden; }
.rt-penduduk-page.lampid-shell-body .penduduk-table-wrap {
  display:block!important; width:100%!important; max-width:100%!important;
  overflow-x:auto!important; overflow-y:auto!important;
  max-height:min(72vh, 780px);
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:thin;
}
.rt-penduduk-page.lampid-shell-body .penduduk-table,
.rt-penduduk-page.lampid-shell-body .penduduk-table-wrap > table {
  width:100%!important; min-width:1300px!important; max-width:none!important;
  table-layout:auto!important; margin-bottom:0;
}
.rt-penduduk-page.lampid-shell-body .penduduk-table th,
.rt-penduduk-page.lampid-shell-body .penduduk-table td {
  width:auto!important; min-width:0!important; max-width:none!important;
  overflow:visible!important; text-overflow:clip!important;
  white-space:nowrap!important; padding:.65rem .75rem!important;
  font-size:.78rem!important; line-height:1.35;
}
.rt-penduduk-page.lampid-shell-body .penduduk-table thead th {
  position:sticky; top:0; z-index:3; white-space:nowrap;
}
.rt-penduduk-page.lampid-shell-body .penduduk-table td:last-child { position:sticky; right:0; z-index:2; background:#fff; }
.rt-penduduk-page.lampid-shell-body .penduduk-table th:last-child { position:sticky; right:0; z-index:4; }
.rt-penduduk-page.lampid-shell-body .penduduk-table td:last-child .d-flex { min-width:116px; }
.lampid-data-table-note { font-size:.74rem; color:#60736a; padding:4px 6px 11px; }
.lampid-data-table-note i { color:#137448; margin-right:5px; }

/* RW, RT dan Admin memakai keterbacaan formulir dan tabel yang konsisten. */
.shell-rw .lampid-main > .card,.shell-rw .lampid-main > .row > [class*=col-] > .card {
  border:1px solid #e3ebe5; border-radius:14px; box-shadow:0 4px 16px rgba(25,55,40,.04);
}
.shell-rw .lampid-main .table-responsive { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.shell-rw .lampid-main .table-responsive .table { min-width:max-content; }
.shell-rw .lampid-main h4 { color:#213f31; font-weight:750; }
.shell-rw .lampid-main > .d-flex:first-child .form-select { min-width:110px; }

@media (max-width:1199.98px) and (min-width:992px) {
  .lampid-topbar-right { gap:8px; }
  .lampid-global-search { flex-basis:200px; }
  .lampid-top-user strong,.lampid-top-user small { max-width:95px; }
}
@media (max-width:767.98px) {
  .lampid-topbar-page { display:flex; max-width:40vw; }
  .lampid-topbar-page strong { font-size:.72rem; }
  .lampid-topbar-page span { font-size:.57rem; }
  .lampid-topbar-left { gap:8px; }
  .lampid-topbar-right { gap:6px; flex-shrink:0; }
  .lampid-top-avatar { width:32px; height:32px; flex-basis:32px; }
  .rt-penduduk-page.lampid-shell-body .penduduk-table-wrap { max-height:65vh; }
  .rt-penduduk-page.lampid-shell-body .penduduk-table,
  .rt-penduduk-page.lampid-shell-body .penduduk-table-wrap > table { min-width:1230px!important; }
  .rt-penduduk-page.lampid-shell-body .penduduk-table th,
  .rt-penduduk-page.lampid-shell-body .penduduk-table td { padding:.55rem .65rem!important; }
  .rt-penduduk-page #modalPenduduk .modal-body { padding-bottom:24px!important; }
  #modalUser .modal-dialog,#modalKeluar .modal-dialog,#modalAktivasi .modal-dialog,
  #modalDownloadPenduduk .modal-dialog { margin:8px; }
  #modalUser .modal-dialog-scrollable,#modalKeluar .modal-dialog-scrollable,
  #modalAktivasi .modal-dialog-scrollable,#modalDownloadPenduduk .modal-dialog-scrollable { height:calc(100% - 16px); }
  #modalUser .modal-footer,#modalKeluar .modal-footer,#modalAktivasi .modal-footer,
  #modalDownloadPenduduk .modal-footer { padding-bottom:calc(.75rem + env(safe-area-inset-bottom)); }
  .shell-rw .lampid-main > .d-flex:first-child { gap:10px; }
  .shell-rw .lampid-main > .d-flex:first-child form { max-width:100%; flex-wrap:wrap; }
  .shell-rw .lampid-main > .d-flex:first-child form .form-select { width:auto; }
}
@media (max-width:390px) {
  .lampid-topbar-page span { display:none; }
  .lampid-topbar-page strong { max-width:140px; }
  .lampid-notification { width:30px; padding-left:6px; }
  #modalUser .modal-footer .btn,#modalKeluar .modal-footer .btn,
  #modalAktivasi .modal-footer .btn,#modalDownloadPenduduk .modal-footer .btn {
    font-size:.8rem; padding-inline:10px;
  }
}
