﻿/* ============================================================
   TEMA BOJA â€” Bersih + Modern + Ramah Desa
   "Tema gratis berkualitas untuk desa digital"
   ============================================================ */
:root {
  /* 🔵 Palette Boja — Biru Tua (Navy) + Putih + Abu */
  --primary: #2563EB;
  --primary-dark: #1D4ED8;
  --primary-darker: #1E3A5F;
  --primary-soft: #60A5FA;
  --primary-light: #BFDBFE;
  --primary-50: #EFF6FF;
  --earth: #1E293B;
  --earth-light: #475569;
  --accent: #3B82F6;
  --accent-dark: #2563EB;
  --accent-soft: #DBEAFE;
  --sky: #F0F9FF;
  --warm-bg: #F8FAFC;
  --warm-section: #F1F5F9;
  /* Neutral */
  --dark: #0F172A;
  --gray-900: #0F172A;
  --gray-800: #1E293B;
  --gray-700: #334155;
  --gray-600: #475569;
  --gray-500: #64748B;
  --gray-400: #94A3B8;
  --gray-300: #CBD5E1;
  --gray-200: #E2E8F0;
  --gray-100: #F1F5F9;
  --gray-50: #F8FAFC;
  --white: #fff;
  --bg-body: var(--warm-bg);
  --text-body: #334155;
  --text-heading: #0F172A;
  --text-muted: #64748B;
  --border: #E2E8F0;
  /* Tipografi */
  --font-heading: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-body: 'Nunito', 'Plus Jakarta Sans', system-ui, sans-serif;
  /* Efek */
  --shadow-sm: 0 1px 3px rgba(0,0,0,.05);
  --shadow-md: 0 4px 12px rgba(0,0,0,.07);
  --shadow-lg: 0 8px 24px rgba(0,0,0,.09);
  --shadow-xl: 0 12px 32px rgba(0,0,0,.11);
  --shadow-primary: 0 4px 16px rgba(37,99,235,.15);
  --primary-rgb: 37,99,235;
  --primary-darker-rgb: 30,58,95;
  --primary-dark-rgb: 29,78,216;
  --radius: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;
  --transition: .3s ease;
  /* Gradient */
  --gradient-boja: linear-gradient(135deg, var(--primary) 0%, var(--primary-darker) 100%);
}

/* ===== COLOR PALETTES ===== */
/* ðŸ”µ Biru Langit */
/* ðŸŸ£ Ungu Mulia */
/* ðŸŒ¹ Merah Rosewood */
/* ðŸŸ  Jingga Sunset */
/* ðŸ©µ Teal Bahari */
/* ðŸ’™ Nila (Indigo) */
/* ========== RESET & BASE ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-family:var(--font-body);line-height:1.7;color:var(--text-body)}
body{background:var(--bg-body);font-size:15px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--primary)}
img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.3;color:var(--text-heading)}
h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.35rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}
p{margin-bottom:.75rem}
::selection{background:var(--primary);color:#fff}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}

/* ========== NAVBAR ========== */
.navbar-boja{background:var(--primary-darker);position:sticky;top:0;z-index:1000;transition:all .3s;border-bottom:none}
.navbar-inner{display:flex;align-items:center;height:56px;gap:1rem}
.navbar-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;text-decoration:none}
.navbar-logo{height:36px;width:36px;object-fit:contain;border-radius:50%;background:rgba(255,255,255,.15);padding:2px}

.navbar-brand-text{font-family:var(--font-heading);font-size:14px;font-weight:700;color:#fff;letter-spacing:.02em;white-space:nowrap}
.navbar-menu{display:none;align-items:center;gap:0;margin:0 auto;padding:0;list-style:none}
.navbar-menu>li{position:relative}
.navbar-menu>li>a.navbar-link{display:flex;align-items:center;gap:4px;padding:18px 16px;font-size:12.5px;font-weight:600;letter-spacing:.05em;color:rgba(255,255,255,.85);transition:all .2s;position:relative;text-transform:uppercase}
.navbar-menu>li:not(.nav-active)>a.navbar-link,.navbar-menu>li:not(.nav-active)>a.navbar-link:link,.navbar-menu>li:not(.nav-active)>a.navbar-link:visited,.navbar-menu>li:not(.nav-active)>a.navbar-link:active{color:rgba(255,255,255,.8)!important;font-weight:600!important}
.navbar-menu>li>a.navbar-link:link,.navbar-menu>li>a.navbar-link:visited{color:rgba(255,255,255,.8)}
.navbar-menu>li>a.navbar-link:hover,.navbar-menu>li:hover>a.navbar-link{color:#fff!important}
/* Hover underline (thin, subtle) */
.navbar-menu>li:not(.nav-active)>a.navbar-link::after{content:'';position:absolute;bottom:0;left:50%;right:50%;height:2px;background:rgba(255,255,255,.6);border-radius:2px 2px 0 0;opacity:0;transition:all .25s ease}
.navbar-menu>li:not(.nav-active):hover>a.navbar-link::after{left:16px;right:16px;opacity:.7}
/* Active menu indicator (solid bar) */
.navbar-menu>li.nav-active>a.navbar-link,.navbar-menu>li.nav-active>a.navbar-link:link,.navbar-menu>li.nav-active>a.navbar-link:visited{color:#fff!important;font-weight:700!important}
.navbar-menu>li.nav-active>a.navbar-link::after{content:'';position:absolute;bottom:0;left:16px;right:16px;height:3px;background:#fff;border-radius:3px 3px 0 0;animation:navActiveIn .3s ease forwards}
@keyframes navActiveIn{0%{transform:scaleX(0);opacity:0}100%{transform:scaleX(1);opacity:1}}
.navbar-menu>li>a .fa-chevron-down{font-size:8px;opacity:.5;transition:transform .2s;color:rgba(255,255,255,.6)}
.navbar-menu>li:hover>a .fa-chevron-down{transform:rotate(180deg)}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;min-width:220px;background:var(--white);box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:var(--radius);z-index:999;padding:8px 0;list-style:none;margin:0}
li:hover>.dropdown-menu{display:block}
.dropdown-menu li a{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;font-size:13px;color:var(--text-body);transition:all .15s}
.dropdown-menu li a:hover{background:var(--primary-50);color:var(--primary)}
.dropdown-menu .dropdown-menu{top:0;left:100%;border-radius:var(--radius)}
.navbar-icons{display:none;align-items:center;gap:4px;margin-left:auto;color:rgba(255,255,255,.85)}
.navbar-icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-size:14px;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-full);transition:all .2s}
.navbar-icon-btn:hover{background:rgba(255,255,255,.15);color:#fff}
.navbar-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:auto;border:none;background:transparent;cursor:pointer;font-size:18px;color:#fff;border-radius:var(--radius)}
.navbar-toggle:hover{background:rgba(255,255,255,.1)}
/* (navbar search moved to hero) */

/* ========== HERO — Boja: Clean & Bold ========== */
.hero-boja{position:relative;min-height:340px;display:flex;align-items:center;background-size:cover;background-position:center;overflow:hidden}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg, rgba(17,24,39,.75) 0%, rgba(30,58,95,.65) 100%)}
.hero-inner{position:relative;z-index:10;width:100%;padding:48px 0}
.hero-text{max-width:600px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);padding:6px 16px 6px 6px;margin-bottom:16px}
.hero-badge-logo{width:28px;height:28px;border-radius:50%;object-fit:contain;background:rgba(255,255,255,.2);padding:2px}
.hero-badge span{font-size:12px;font-weight:600;color:rgba(255,255,255,.9);letter-spacing:.04em}
.hero-title{font-family:var(--font-heading);font-size:2.6rem;font-weight:800;color:#fff;line-height:1.2;margin-bottom:12px;text-shadow:0 2px 16px rgba(0,0,0,.2)}
.hero-location{font-size:13px;color:rgba(255,255,255,.75);margin-bottom:24px;display:flex;align-items:center;gap:6px}
.hero-location i{color:var(--primary-soft);font-size:12px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.hero-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:var(--radius);font-size:13px;font-weight:600;font-family:var(--font-heading);cursor:pointer;transition:all .25s;text-decoration:none;border:none}
.hero-btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 16px rgba(37,99,235,.3)}
.hero-btn-primary:hover{background:var(--primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 6px 20px rgba(37,99,235,.4)}
.hero-btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.hero-btn-outline:hover{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.7)}

/* ========== HERO BOTTOM BAR (Menu Desa Row) ========== */
.hero-bottom-bar{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:28px;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgb(255, 255, 255,.15);
  border-radius:var(--radius-x1);
  padding:10px 16px;
}
.hero-menu-row{
  display:flex;
  align-items:center;
  gap:4px;
  flex:1;
  justify-content:center;
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.hero-menu-row::-webkit-scrollbar{display:none}
.hero-menu-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:8px 10px;
  text-decoration:none;
  color:rgba(255,255,255,.85);
  transition:all .25s ease;
  border-radius:var(--radius);
  flex-shrink:0;
  min-width:0;
}
.hero-menu-item:hover{
  color:#fff;
  background:rgba(255,255,255,.12);
}
.hero-menu-icon{
  width:36px;height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius);
  background:rgba(255,255,255,.15);
  font-size:14px;
  color:#fff;
  transition:all .25s ease;
}
.hero-menu-item:hover .hero-menu-icon{
  background:var(--primary);
  transform:scale(1.08);
  box-shadow:0 4px 16px rgba(37,99,235,.4);
}
.hero-menu-item span{
  font-size:.62rem;
  font-weight:600;
  text-align:center;
  line-height:1.15;
  color:rgba(255,255,255,.85);
  white-space:nowrap;
}
.hero-menu-item:hover span{
  color:#fff;
}
.hero-bottom-bar .hero-btn{
  flex-shrink:0;
  white-space:nowrap;
}

/* Hero Bottom Bar Responsive */
@media(max-width:899px){
  .hero-bottom-bar{
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    padding:10px 12px;
  }
  .hero-menu-row{
    order:3;
    width:100%;
    justify-content:flex-start;
    gap:2px;
    padding:4px 0;
  }
  .hero-bottom-bar .hero-btn{
    order:1;
  }
}
@media(max-width:479px){
  .hero-bottom-bar{
    padding:8px;
    border-radius:var(--radius-lg);
  }
  .hero-menu-item{
    padding:6px 6px;
    gap:3px;
  }
  .hero-menu-icon{
    width:30px;height:30px;
    font-size:12px;
  }
  .hero-menu-item span{
    font-size:.55rem;
  }
  .hero-bottom-bar .hero-btn{
    font-size:12px;
    padding:8px 16px;
  }
}

/* ========== HERO SEARCH BAR ========== */
.hero-search-bar{
  display:flex;
  align-items:center;
  max-width:560px;
  margin:16px auto 0;
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius-full);
  overflow:hidden;
  transition:all .3s ease;
}
.hero-search-bar:focus-within{
  background:rgba(255,255,255,.2);
  border-color:rgba(255,255,255,.35);
  box-shadow:0 4px 24px rgba(0,0,0,.15);
}
.hero-search-bar input{
  flex:1;
  padding:12px 20px;
  border:none;
  background:transparent;
  color:#fff;
  font-size:14px;
  font-family:var(--font-body);
  outline:none;
}
.hero-search-bar input::placeholder{
  color:rgba(255,255,255,.55);
}
.hero-search-bar button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:none;
  background:transparent;
  cursor:pointer;
  transition:all .2s;
  flex-shrink:0;
  margin-right:4px;
}
.hero-search-bar button i{
  font-size:16px;
  color:#FBBF24;
  transition:all .2s;
}
.hero-search-bar button:hover i{
  color:#F59E0B;
  transform:scale(1.1);
}
@media(max-width:479px){
  .hero-search-bar{
    margin:12px 0 0;
    max-width:100%;
  }
  .hero-search-bar input{
    padding:10px 16px;
    font-size:13px;
  }
}



/* ========== TICKER ========== */
.ticker-bar{background:var(--primary-darker);padding:8px 0;font-size:13px}
.ticker-inner{display:flex;align-items:center;gap:12px}
.ticker-label{flex-shrink:0;background:rgba(255,255,255,.15);color:#fff;padding:3px 12px;font-size:11px;font-weight:600;border-radius:var(--radius);display:inline-flex;align-items:center;gap:4px}
.ticker-text{flex:1;color:rgba(255,255,255,.85)}
.ticker-text span{margin-right:40px}
.ticker-text a{color:var(--accent);font-weight:600;margin-left:4px}

/* ========== TICKER — Full Width ========== */
.ticker-fullwidth{
  width:100%;
}
.ticker-inner-full{
  display:flex;
  align-items:center;
  gap:0;
  max-width:100%;
  overflow:hidden;
}
.ticker-inner-full .ticker-label{
  flex-shrink:0;
  background:rgba(255,255,255,.15);
  color:#fff;
  padding:3px 14px;
  font-size:11px;
  font-weight:600;
  border-radius:0;
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.ticker-track-wrap{
  flex:1;
  overflow:hidden;
  min-width:0;
  padding:0 16px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 3%,#000 97%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 3%,#000 97%,transparent 100%);
}
.ticker-track{
  display:inline-flex;
  white-space:nowrap;
  animation:tickerScroll 25s linear infinite;
  will-change:transform;
}
.ticker-track:hover{
  animation-play-state:paused;
}
.ticker-track-item{
  margin-right:50px;
  font-size:.78rem;
  color:rgba(255,255,255,.9);
}
.ticker-track-item a{
  color:var(--primary-soft);
  font-weight:700;
  margin-left:4px;
  text-decoration:none;
}
.ticker-track-item a:hover{
  text-decoration:underline;
  color:#fff;
}
@keyframes tickerScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}



/* ========== LAYOUT ========== */
.layout-boja{padding:32px 0 40px}
.layout-main{display:flex;flex-direction:column;gap:32px}
.content-area{flex:1;min-width:0}
.content-area.box{padding:24px;border-radius:var(--radius-lg)}
.sidebar-area{width:100%}
.section-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;margin-bottom:20px;border-bottom:none;border-left:4px solid var(--primary);padding-left:14px}
.section-title{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;color:var(--text-heading)}
.section-title i{font-size:14px;color:var(--primary)}
.category-tabs{display:flex;align-items:center;gap:8px;padding:0 0 20px;flex-wrap:wrap}
.cat-tab{padding:6px 16px;font-size:13px;font-weight:600;color:var(--text-muted);border:1.5px solid var(--border);border-radius:var(--radius);transition:all .2s}
.cat-tab:hover,.cat-tab.active{color:var(--white);background:var(--primary);border-color:var(--primary)}

/* ========== ARTICLE LIST ========== */
.article-grid{display:flex;flex-direction:column;gap:0;margin-bottom:28px}
.article-list-item{
  display:flex;
  gap:16px;
  padding:16px 0;
  border-bottom:1px solid var(--border);
  transition:background .2s;
}
.article-list-item:first-child{padding-top:0}
.article-list-item:last-child{border-bottom:none}
.article-list-item:hover{background:var(--gray-50)}
.article-list-thumb{
  display:block;
  flex-shrink:0;
  width:110px;
  height:80px;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--gray-100);
}
.article-list-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}
.article-list-item:hover .article-list-thumb img{transform:scale(1.06)}
.article-list-thumb-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:var(--gray-400);
  font-size:1.2rem;
}
.article-list-body{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
}
.article-list-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-size:.7rem;
  color:var(--text-muted);
}
.article-list-meta span{display:inline-flex;align-items:center;gap:3px}
.article-list-meta i{font-size:10px;color:var(--primary-soft)}
.article-list-cat{
  font-size:.65rem;
  font-weight:700;
  color:var(--primary);
  background:rgba(var(--primary-rgb),.08);
  padding:2px 8px;
  border-radius:var(--radius);
  letter-spacing:.3px;
  text-transform:uppercase;
}
.article-list-title{
  display:block;
  font-size:.88rem;
  font-weight:700;
  color:var(--text-heading);
  line-height:1.4;
  transition:color .2s;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.article-list-title:hover{color:var(--primary)}
.article-list-excerpt{
  font-size:.78rem;
  color:var(--text-muted);
  line-height:1.5;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
@media(max-width:575px){
  .article-list-thumb{width:80px;height:64px}
  .article-list-title{font-size:.82rem;white-space:normal;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
  .article-list-excerpt{display:none}
}
.card-boja{display:flex;flex-direction:column;background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:all .25s ease;border:1px solid var(--border);position:relative}
.card-boja:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card-image-wrap{display:block;overflow:hidden;height:180px;background:var(--gray-100);position:relative}
.card-image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card-boja:hover .card-image{transform:scale(1.06)}
.card-category-float{position:absolute;top:10px;left:10px;font-size:.7rem;font-weight:600;color:#fff;background:var(--primary);padding:3px 10px;border-radius:var(--radius);z-index:2}
.card-body{padding:14px 16px 12px}
.card-title{display:block;font-size:.9rem;font-weight:700;color:var(--text-heading);line-height:1.4;margin-bottom:4px;transition:color .2s}
.card-title:hover{color:var(--primary)}
.card-excerpt{
  font-size:.82rem;
  color:var(--text-muted);
  line-height:1.6;
  margin-bottom:12px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:12px;
  border-top:1px solid var(--border);
}
.card-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.7rem;color:var(--text-muted)}
.card-meta span{display:inline-flex;align-items:center;gap:3px}
.card-meta i{font-size:10px;color:var(--primary-soft)}
.card-readmore{font-size:.75rem;font-weight:600;color:var(--primary);display:inline-flex;align-items:center;gap:4px;transition:all .2s}
.card-readmore:hover{gap:6px;color:var(--primary-dark)}

/* ========== DESA STATS BANNER (replaces Artikel Pilihan) ========== */

.desa-stats-banner{

  background:var(--white);

  border-radius:var(--radius-xl);

  border:1px solid var(--border);

  margin-bottom:24px;

  overflow:hidden;

  box-shadow:var(--shadow-sm);

}

.dsb-header{

  display:flex;

  align-items:center;

  justify-content:space-between;

  padding:16px 20px;

  border-bottom:1px solid var(--border);

  gap:12px;

}

.dsb-header-left{

  display:flex;

  align-items:center;

  gap:12px;

  min-width:0;

}

.dsb-icon{

  width:40px;height:40px;

  display:flex;

  align-items:center;

  justify-content:center;

  border-radius:12px;

  background:var(--primary-50);

  color:var(--primary);

  font-size:16px;

  flex-shrink:0;

}

.dsb-header-left h3{

  font-size:.88rem;

  font-weight:700;

  color:var(--text-heading);

  margin:0;

  line-height:1.3;

}

.dsb-header-left p{

  font-size:.72rem;

  color:var(--text-muted);

  margin:0;

  line-height:1.4;

}

.dsb-link{

  font-size:.75rem;

  font-weight:600;

  color:var(--primary);

  white-space:nowrap;

  display:inline-flex;

  align-items:center;

  gap:4px;

  text-decoration:none;

  transition:all .2s;

  flex-shrink:0;

}

.dsb-link:hover{

  color:var(--primary-dark);

  gap:6px;

}

.dsb-link i{

  font-size:.65rem;

  transition:transform .2s;

}

.dsb-link:hover i{

  transform:translateX(2px);

}



/* Counters — horizontal row with dark bg */

.dsb-counters{

  display:flex;

  align-items:center;

  justify-content:center;

  padding:24px 20px;

  gap:0;

  background:linear-gradient(135deg, var(--primary-darker) 0%, var(--primary-dark) 100%);

  position:relative;

}

.dsb-counters::before{

  content:"";

  position:absolute;

  inset:0;

  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;

  opacity:.5;

  pointer-events:none;

}

.dsb-counter-card{

  display:flex;

  flex-direction:column;

  align-items:center;

  gap:6px;

  flex:1;

  position:relative;

  z-index:1;

}

.dsb-counter-ring{

  width:52px;height:52px;

  display:flex;

  align-items:center;

  justify-content:center;

  border-radius:50%;

  font-size:18px;

  border:2px solid rgba(255,255,255,.25);

  transition:all .3s;

}

.dsb-total .dsb-counter-ring{

  background:rgba(255,255,255,.15);

  color:#fff;

  border-color:rgba(255,255,255,.4);

}

.dsb-laki .dsb-counter-ring{

  background:rgba(59,130,246,.25);

  color:#93C5FD;

  border-color:rgba(59,130,246,.4);

}

.dsb-perempuan .dsb-counter-ring{

  background:rgba(236,72,153,.2);

  color:#F9A8D4;

  border-color:rgba(236,72,153,.35);

}

.dsb-counter-card:hover .dsb-counter-ring{

  transform:scale(1.1);

  border-color:rgba(255,255,255,.6);

}

.dsb-counter-num{

  font-family:var(--font-heading);

  font-size:1.6rem;

  font-weight:800;

  color:#fff;

  line-height:1;

  letter-spacing:-.02em;

}

.dsb-counter-label{

  font-size:.68rem;

  font-weight:600;

  color:rgba(255,255,255,.65);

  text-transform:uppercase;

  letter-spacing:.06em;

}

.dsb-counter-divider{

  width:1px;

  height:60px;

  background:rgba(255,255,255,.12);

  flex-shrink:0;

}



/* Quicklinks row */

.dsb-quicklinks{

  display:flex;

  flex-wrap:wrap;

  align-items:center;

  gap:0;

  border-top:1px solid var(--border);

}

.dsb-qlink{

  flex:1;

  min-width:0;

  display:flex;

  align-items:center;

  justify-content:center;

  gap:6px;

  padding:12px 8px;

  font-size:.75rem;

  font-weight:600;

  color:var(--text-body);

  text-decoration:none;

  transition:all .2s;

  border-right:1px solid var(--border);

  white-space:nowrap;

}

.dsb-qlink:last-child{

  border-right:none;

}

.dsb-qlink:hover{

  background:var(--primary-50);

  color:var(--primary);

}

.dsb-qlink-dot{

  width:8px;height:8px;

  border-radius:50%;

  flex-shrink:0;

  opacity:.8;

}

.dsb-qlink:hover .dsb-qlink-dot{

  opacity:1;

  transform:scale(1.2);

}



/* Responsive stats banner */

@media(max-width:599px){

  .dsb-header{

    flex-direction:column;

    align-items:flex-start;

    gap:8px;

    padding:14px 16px;

  }

  .dsb-counters{

    padding:20px 12px;

    gap:0;

  }

  .dsb-counter-ring{

    width:42px;height:42px;

    font-size:15px;

  }

  .dsb-counter-num{

    font-size:1.25rem;

  }

  .dsb-counter-label{

    font-size:.6rem;

  }

  .dsb-counter-divider{

    height:46px;

  }

  .dsb-quicklinks{

    flex-wrap:wrap;

  }

  .dsb-qlink{

    flex:0 0 33.333%;

    border-right:1px solid var(--border);

    border-bottom:1px solid var(--border);

    padding:10px 6px;

    font-size:.7rem;

  }

  .dsb-qlink:nth-child(3n){

    border-right:none;

  }

  .dsb-qlink:nth-last-child(-n+3){

    border-bottom:none;

  }

}

/* ========== HEADLINE (Slider variant) ========== */
.headline-boja{position:relative;overflow:hidden;border-radius:var(--radius-lg);height:280px;margin-bottom:24px}
.headline-boja figure{width:100%;height:100%;margin:0}
.headline-boja figure img{width:100%;height:100%;object-fit:cover}
.headline-overlay{position:absolute;bottom:0;left:0;right:0;padding:48px 24px 20px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;display:flex;flex-direction:column;gap:6px}
.headline-title{font-size:1.1rem;font-weight:700;color:#fff}

/* ========== SLIDER (inline) ========== */
.slider-boja{position:relative;overflow:hidden;border-radius:var(--radius-lg);margin-bottom:24px}
.slider-boja .slider-item,.slider-boja figure{position:relative;height:280px;width:100%;margin:0}
.slider-boja .slider-item img,.slider-boja figure img{width:100%;height:100%;object-fit:cover}
.slider-boja figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.65));padding:48px 24px 20px;color:#fff}
.slider-boja figcaption a{font-weight:700;font-size:1rem;color:#fff}
.slider-nav-boja{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s;opacity:0;color:var(--text-body);border:none;font-size:14px}
.slider-boja:hover .slider-nav-boja{opacity:1}
.slider-nav-boja:hover{background:var(--primary);color:#fff}
.slider-nav-boja.prev{left:14px}
.slider-nav-boja.next{right:14px}

/* ========== FULL-WIDTH SECTIONS ========== */
.section-fullwidth{padding:48px 0}
.section-fullwidth:nth-child(even){background:linear-gradient(180deg,var(--primary-50) 0%,#f8faf8 100%)}
.section-aparatur{background:var(--sky)}
.section-peta{background:var(--warm-section)}
.section-trio{background:linear-gradient(180deg,#EFF6FF 0%,#fff 100%)}
.section-header-center{text-align:center;margin-bottom:32px}
.section-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--primary-50);color:var(--primary);border-radius:var(--radius);font-size:18px;margin-bottom:10px}
.section-title-big{font-size:1.75rem;font-weight:800;color:var(--text-heading);margin-bottom:6px}
.section-subtitle{font-size:14px;color:var(--text-muted)}

/* ========== WIDGET: MENU KATEGORI (Elegant â€” like kehadiran panel) ========== */
.wcat-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (sama persis kehadiran-panel-header) */
.wcat-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wcat-header::after{display:none}
.wcat-header-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex-shrink:0;
  color:var(--primary);
}
.wcat-header-text{
  flex:1;min-width:0;
}
.wcat-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.wcat-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
  line-height:1.3;
}

/* Body */
.wcat-body{
  padding:10px;
  max-height:420px;
  overflow-y:auto;
}
.wcat-body::-webkit-scrollbar{width:4px}
.wcat-body::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}
.wcat-body::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}
.wcat-body::-webkit-scrollbar-thumb:hover{background:var(--primary-soft)}

/* List */
.wcat-list{
  display:flex;
  flex-direction:column;
  gap:3px;
  list-style:none;
  padding:0;margin:0;
}

/* Each item â€” mirip kehadiran-item */
.wcat-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:var(--radius-lg);
  transition:all .25s ease;
  cursor:pointer;
  text-decoration:none;
  color:var(--text-heading);
  animation:fadeInUp .4s ease-out both;
  position:relative;
}
.wcat-item:hover{
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.06),rgba(96,165,250,.03));
  transform:translateX(4px);
  box-shadow:0 2px 12px rgba(var(--primary-rgb),.08);
  color:var(--primary-dark);
}

/* Icon â€” mirip kehadiran avatar area */
.wcat-icon{
  width:38px;height:38px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--primary-50),#fff);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  color:var(--primary);
  flex-shrink:0;
  border:1px solid rgba(var(--primary-rgb),.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 1px 3px rgba(var(--primary-rgb),.08);
  transition:all .25s;
}
.wcat-item:hover .wcat-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  border-color:var(--primary);
  box-shadow:0 3px 12px rgba(var(--primary-rgb),.25);
  transform:scale(1.05);
}

/* Info text â€” mirip kehadiran-info */
.wcat-info{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.wcat-name{
  font-size:.84rem;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.wcat-count{
  font-size:.68rem;
  color:var(--text-muted);
  line-height:1.2;
}

/* Badge angka â€” mirip kehadiran-badge */
.wcat-badge{
  flex-shrink:0;
  min-width:26px;
  height:22px;
  padding:0 8px;
  border-radius:var(--radius-full);
  background:linear-gradient(135deg,var(--accent),var(--accent-dark));
  color:#fff;
  font-size:.7rem;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  box-shadow:0 2px 6px rgba(96,165,250,.25);
  transition:all .25s;
}
.wcat-item:hover .wcat-badge{
  transform:scale(1.1);
  box-shadow:0 3px 10px rgba(96,165,250,.35);
}

/* Arrow chevron */
.wcat-arrow{
  flex-shrink:0;
  font-size:10px;
  color:var(--gray-400);
  transition:all .25s;
  opacity:.4;
}
.wcat-item:hover .wcat-arrow{
  color:var(--primary);
  opacity:1;
  transform:translateX(2px);
}

/* Sub-list */
.wcat-sublist{
  list-style:none;
  padding:2px 0 4px 20px;
  margin:0;
  border-left:2px solid rgba(var(--primary-rgb),.1);
  margin-left:30px;
}
.wcat-subitem{
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:8px;
  font-size:.82rem;
  color:var(--text-muted);
  transition:all .2s;
  text-decoration:none;
}
.wcat-subitem:hover{
  color:var(--primary);
  background:var(--primary-50);
  transform:translateX(2px);
}
.wcat-sub-icon{
  font-size:.65rem;
  opacity:.5;
  flex-shrink:0;
}

/* Empty state */
.wcat-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:32px 16px;
  text-align:center;
  color:var(--text-muted);
}
.wcat-empty i{font-size:2rem;opacity:.3}
.wcat-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .footer-columns{grid-template-columns:1fr}
  .footer-top-row{flex-direction:column;align-items:flex-start}
  .wcat-header{padding:14px 16px;border-left:4px solid var(--primary)}
  .wcat-header-icon{width:38px;height:38px;font-size:16px;border-radius:12px}
  .wcat-item{padding:8px 10px;gap:8px}
  .wcat-icon{width:32px;height:32px;font-size:12px;border-radius:10px}
  .wcat-name{font-size:.8rem}
  .wcat-badge{min-width:22px;height:20px;padding:0 6px;font-size:.65rem}
  .wcat-sublist{margin-left:24px;padding-left:14px}
}

/* ========== WIDGET: ARSIP ARTIKEL (Elegant â€” like kehadiran panel) ========== */
.warsip-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (konsisten) */
.warsip-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.warsip-header::after{display:none}
.warsip-header-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex-shrink:0;
  color:var(--primary);
}
.warsip-header-text{flex:1;min-width:0}
.warsip-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.warsip-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
  line-height:1.3;
}

/* Tabs â€” inline pill buttons */
.warsip-tabs{
  display:flex;
  gap:0;
  border-bottom:1px solid var(--border);
  background:var(--gray-50);
}
.warsip-tab{
  flex:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:10px 12px;
  font-size:.78rem;
  font-weight:600;
  font-family:var(--font-heading);
  color:var(--text-muted);
  background:transparent;
  border:none;
  border-bottom:2.5px solid transparent;
  cursor:pointer;
  transition:all .25s ease;
  position:relative;
}
.warsip-tab:hover{
  color:var(--primary);
  background:var(--primary-50);
}
.warsip-tab.is-active{
  color:var(--primary-dark);
  border-bottom-color:var(--primary);
  background:var(--white);
}
.warsip-tab i{
  font-size:.68rem;
  opacity:.7;
}
.warsip-tab.is-active i{
  opacity:1;
}

/* Body / Panels */
.warsip-body{
  padding:0;
}
.warsip-panel{
  display:none;
  padding:10px;
  max-height:420px;
  overflow-y:auto;
}
.warsip-panel.is-active{
  display:block;
}
.warsip-panel::-webkit-scrollbar{width:4px}
.warsip-panel::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}
.warsip-panel::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}
.warsip-panel::-webkit-scrollbar-thumb:hover{background:var(--primary-soft)}

/* List */
.warsip-list{
  display:flex;
  flex-direction:column;
  gap:3px;
  list-style:none;
  padding:0;margin:0;
}

/* Each item â€” mirip kehadiran-item */
.warsip-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:var(--radius-lg);
  transition:all .25s ease;
  cursor:pointer;
  text-decoration:none;
  color:var(--text-heading);
  animation:fadeInUp .4s ease-out both;
}
.warsip-item:hover{
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.06),rgba(96,165,250,.03));
  transform:translateX(4px);
  box-shadow:0 2px 12px rgba(var(--primary-rgb),.08);
  color:var(--primary-dark);
}

/* Thumbnail â€” mirip kehadiran avatar */
.warsip-thumb{
  width:56px;height:42px;
  border-radius:10px;
  overflow:hidden;
  flex-shrink:0;
  background:var(--gray-100);
  border:1px solid rgba(var(--primary-rgb),.08);
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.warsip-thumb img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:transform .3s;
}
.warsip-item:hover .warsip-thumb img{
  transform:scale(1.08);
}
.warsip-thumb-placeholder{
  width:100%;height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--primary-50),var(--gray-100));
  color:var(--gray-400);
  font-size:14px;
}

/* Info text */
.warsip-info{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.warsip-hit{
  font-size:.68rem;
  font-weight:700;
  color:var(--accent-dark);
  display:inline-flex;
  align-items:center;
  gap:4px;
  line-height:1;
}
.warsip-hit i{font-size:.6rem;color:var(--accent)}
.warsip-date{
  font-size:.68rem;
  font-weight:600;
  color:var(--text-muted);
  display:inline-flex;
  align-items:center;
  gap:4px;
  line-height:1;
}
.warsip-date i{font-size:.6rem;color:var(--primary-soft)}
.warsip-title{
  font-size:.82rem;
  font-weight:600;
  line-height:1.35;
  color:inherit;
  display:-webkit-box;
  -webkit-line-clamp:2;
  line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Arrow */
.warsip-arrow{
  flex-shrink:0;
  font-size:10px;
  color:var(--gray-400);
  transition:all .25s;
  opacity:.3;
}
.warsip-item:hover .warsip-arrow{
  color:var(--primary);
  opacity:1;
  transform:translateX(2px);
}

/* Empty state */
.warsip-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:32px 16px;
  text-align:center;
  color:var(--text-muted);
}
.warsip-empty i{font-size:2rem;opacity:.3}
.warsip-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .warsip-header{padding:14px 16px}
  .warsip-header-icon{width:38px;height:38px;font-size:16px;border-radius:12px}
  .warsip-tab{padding:8px 8px;font-size:.72rem}
  .warsip-item{padding:8px 10px;gap:10px}
  .warsip-thumb{width:48px;height:36px;border-radius:8px}
  .warsip-title{font-size:.78rem}
}

/* ========== WIDGET: SINERGI PROGRAM (Elegant â€” like wcat/warsip) ========== */
.wsinergi-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (konsisten) */
.wsinergi-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wsinergi-header::after{display:none}
.wsinergi-header-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  color:var(--primary);
  font-size:16px;
}
.wsinergi-header-text{flex:1;min-width:0}
.wsinergi-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.wsinergi-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
  line-height:1.3;
}

/* Body — Simple list */
.wsinergi-body{padding:0}
.wsinergi-list{
  display:flex;
  flex-direction:column;
}
.wsinergi-list-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  text-decoration:none;
  border-bottom:1px solid var(--gray-100);
  transition:all .2s ease;
}
.wsinergi-list-item:last-child{border-bottom:none}
.wsinergi-list-item:hover{
  background:var(--primary-50);
  padding-left:20px;
}
.wsinergi-list-logo{
  width:28px;height:28px;
  border-radius:6px;
  overflow:hidden;
  background:var(--gray-50);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  border:1px solid var(--gray-200);
}
.wsinergi-list-logo img{
  width:100%;height:100%;
  object-fit:contain;
}
.wsinergi-list-logo .wsinergi-fa-icon{
  font-size:.7rem;
  color:var(--primary);
}
.wsinergi-list-name{
  flex:1;
  font-size:.78rem;
  font-weight:600;
  color:var(--text-heading);
  line-height:1.3;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  overflow:hidden;
  transition:color .2s;
}
.wsinergi-list-item:hover .wsinergi-list-name{color:var(--primary)}
.wsinergi-list-ext{
  font-size:.58rem;
  color:var(--gray-300);
  opacity:0;
  transition:all .2s;
  flex-shrink:0;
}
.wsinergi-list-item:hover .wsinergi-list-ext{
  opacity:1;
  color:var(--primary);
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wsinergi-header{padding:14px 16px}
  .wsinergi-header-icon{width:38px;height:38px;padding:5px;border-radius:12px}
  .wsinergi-list-item{padding:9px 14px;gap:8px}
  .wsinergi-list-logo{width:24px;height:24px}
  .wsinergi-list-name{font-size:.74rem}
}

/* ========== WIDGET: STATISTIK PENGUNJUNG (Elegant â€” boja) ========== */
.wvisitor-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  margin-bottom:0;
}
.wvisitor-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wvisitor-header::after{display:none}
.wvisitor-header-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  color:var(--primary);
}
.wvisitor-header-text{flex:1;min-width:0}
.wvisitor-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}

/* â”€â”€ Body â”€â”€ */
.wvisitor-body{padding:18px 16px 14px}
.wvisitor-stat-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
}
.wvisitor-stat{
  flex:1;
  text-align:center;
  padding:4px 0;
}
.wvisitor-num{
  display:block;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;
  font-weight:800;
  color:var(--primary);
  line-height:1.2;
}
.wvisitor-num-total{
  color:var(--accent);
  font-size:1.6rem;
}
.wvisitor-label{
  display:block;
  font-size:.68rem;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-top:2px;
}
.wvisitor-divider{
  width:1px;
  height:36px;
  background:var(--gray-200);
  flex-shrink:0;
}
.wvisitor-live{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid var(--gray-100);
  font-size:.72rem;
  color:var(--text-muted);
  font-weight:500;
}
.wvisitor-live-dot{
  width:8px;height:8px;
  background:#3B82F6;
  border-radius:50%;
  animation:visitorPulse 1.5s ease-in-out infinite;
}
@keyframes visitorPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(1.3)}
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wvisitor-header{padding:14px 16px}
  .wvisitor-header-icon{width:36px;height:36px;font-size:1rem;border-radius:12px}
  .wvisitor-num{font-size:1.3rem}
  .wvisitor-num-total{font-size:1.4rem}
  .wvisitor-body{padding:14px 12px 10px}
}

/* â”€â”€ Statistik Pengunjung in Content Area â”€â”€ */
.wvisitor-content-wrap{
  margin-top:28px;
  margin-bottom:8px;
}
.wvisitor-content-wrap .wvisitor-box{
  border-radius:16px;
  box-shadow:0 2px 16px rgba(0,0,0,.07);
  border:none;
}

/* ========== WIDGET: GALERI (Elegant Carousel â€” boja) ========== */
.wgaleri-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  margin-bottom:20px;
}

/* â”€â”€ Header â”€â”€ */
.wgaleri-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wgaleri-header::after{display:none}
.wgaleri-header-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  color:var(--primary);
}
.wgaleri-header-text{flex:1;min-width:0}
.wgaleri-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}
.wgaleri-header-text p{
  font-size:.72rem;
  margin:2px 0 0;
  line-height:1.3;
  color:var(--text-muted);
}
.wgaleri-header-link{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary-50);
  border-radius:50%;
  color:var(--primary);font-size:.7rem;
  transition:all .2s;flex-shrink:0;
  text-decoration:none;
}
.wgaleri-header-link:hover{
  background:var(--primary);
  transform:scale(1.1);
  color:var(--white);
}

/* â”€â”€ Body â”€â”€ */
.wgaleri-body{padding:0}

/* â”€â”€ Carousel Slides â”€â”€ */
.wgaleri-carousel .owl-stage-outer{border-radius:0}
.wgaleri-slide{
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10;
  background:#f1f5f9;
}
.wgaleri-slide img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.wgaleri-slide:hover img{
  transform:scale(1.05);
}
.wgaleri-slide-overlay{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:28px 14px 10px;
  background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 100%);
  pointer-events:none;
}
.wgaleri-slide-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.78rem;font-weight:600;
  color:var(--white);
  text-shadow:0 1px 3px rgba(0,0,0,.4);
  display:flex;align-items:center;gap:6px;
}
.wgaleri-slide-title i{font-size:.7rem;opacity:.8}

/* â”€â”€ Carousel Nav & Dots â”€â”€ */
.wgaleri-carousel .owl-nav{
  position:absolute;
  top:50%;left:0;right:0;
  display:flex;justify-content:space-between;
  transform:translateY(-50%);
  padding:0 6px;
  pointer-events:none;
}
.wgaleri-carousel .owl-nav button{
  width:30px;height:30px;
  background:rgba(255,255,255,.85)!important;
  border-radius:50%!important;
  display:flex;align-items:center;justify-content:center;
  font-size:.75rem!important;
  color:var(--primary)!important;
  box-shadow:0 2px 8px rgba(0,0,0,.12);
  pointer-events:all;
  transition:all .2s;
  border:none!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
}
.wgaleri-carousel .owl-nav button:hover{
  background:var(--primary)!important;
  color:var(--white)!important;
  transform:scale(1.1);
}
.wgaleri-carousel .owl-nav button span{display:none}
.wgaleri-carousel .owl-nav button.owl-prev::after{content:'\f053';font-family:'Font Awesome 5 Free';font-weight:900;font-size:.65rem}
.wgaleri-carousel .owl-nav button.owl-next::after{content:'\f054';font-family:'Font Awesome 5 Free';font-weight:900;font-size:.65rem}
.wgaleri-carousel .owl-dots{
  position:absolute;bottom:8px;left:0;right:0;
  text-align:center;
}
.wgaleri-carousel .owl-dots .owl-dot span{
  width:7px;height:7px;
  background:rgba(255,255,255,.5)!important;
  margin:0 3px;
  border-radius:50%;
  transition:all .25s;
}
.wgaleri-carousel .owl-dots .owl-dot.active span{
  background:var(--white)!important;
  width:18px;
  border-radius:4px;
}

/* â”€â”€ Footer â”€â”€ */
.wgaleri-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;
  border-top:1px solid var(--gray-100);
}
.wgaleri-count{
  font-size:.72rem;
  color:var(--text-muted);
  font-weight:500;
  display:flex;align-items:center;gap:5px;
}
.wgaleri-count i{color:var(--primary);font-size:.65rem}
.wgaleri-viewall{
  font-size:.72rem;
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  display:flex;align-items:center;gap:4px;
  transition:all .2s;
}
.wgaleri-viewall:hover{
  color:var(--primary-dark);
  gap:6px;
}
.wgaleri-viewall i{font-size:.6rem;transition:transform .2s}
.wgaleri-viewall:hover i{transform:translateX(2px)}

/* â”€â”€ Empty State â”€â”€ */
.wgaleri-empty{
  padding:30px 20px;
  text-align:center;
}
.wgaleri-empty-img{
  width:100px;height:auto;
  opacity:.6;margin:0 auto 12px;
  display:block;
}
.wgaleri-empty p{
  font-size:.8rem;
  color:var(--text-muted);
  margin:0;
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wgaleri-header{padding:14px 16px}
  .wgaleri-header-icon{width:36px;height:36px;font-size:1rem;border-radius:12px}
  .wgaleri-carousel .owl-nav button{width:26px;height:26px}
  .wgaleri-footer{padding:8px 14px}
}

/* ========== WIDGET: AGENDA KEGIATAN (Elegant â€” like wcat/warsip) ========== */
.wagenda-box{
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  background:var(--white);
  border:1px solid rgba(var(--primary-rgb),.08);
}

/* Header â€” gradient hijau gelap (konsisten) */
.wagenda-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:18px 20px;
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary-dark) 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.wagenda-header::after{
  content:'';
  position:absolute;
  top:-20px;right:-20px;
  width:80px;height:80px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
}
.wagenda-header-icon{
  width:44px;height:44px;
  border-radius:14px;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
  backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
}
.wagenda-header-text{flex:1;min-width:0}
.wagenda-header-text h3{
  font-family:var(--font-heading);
  font-size:.95rem;font-weight:700;
  margin:0;color:#fff;
}
.wagenda-header-text p{
  font-size:.72rem;
  color:rgba(255,255,255,.6);
  margin:0;line-height:1.3;
}

/* Tabs */
.wagenda-tabs{
  display:flex;gap:0;
  border-bottom:1px solid var(--border);
  background:var(--gray-50);
}
.wagenda-tab{
  flex:1;
  display:inline-flex;align-items:center;justify-content:center;
  gap:5px;
  padding:10px 8px;
  font-size:.76rem;font-weight:600;
  font-family:var(--font-heading);
  color:var(--text-muted);
  background:transparent;border:none;
  border-bottom:2.5px solid transparent;
  cursor:pointer;transition:all .25s ease;
}
.wagenda-tab:hover{color:var(--primary);background:var(--primary-50)}
.wagenda-tab.is-active{
  color:var(--primary-dark);
  border-bottom-color:var(--primary);
  background:var(--white);
}
.wagenda-tab i{font-size:.65rem;opacity:.7}
.wagenda-tab.is-active i{opacity:1}
.wagenda-tab-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;
  padding:0 5px;
  border-radius:var(--radius-full);
  font-size:.6rem;font-weight:700;
  background:var(--gray-200);color:var(--text-muted);
  transition:all .2s;
}
.wagenda-tab.is-active .wagenda-tab-count{
  background:var(--primary);color:#fff;
}

/* Body / Panels */
.wagenda-body{padding:0}
.wagenda-panel{
  display:none;
  padding:10px;
}
.wagenda-panel.is-active{display:block}

/* Vertical auto-scroll wrapper */
.wagenda-scroll-wrap{
  max-height:320px;
  overflow:hidden;
  position:relative;
}
.wagenda-scroll-wrap::before,
.wagenda-scroll-wrap::after{
  content:'';
  position:absolute;
  left:0;right:0;
  height:18px;
  z-index:2;
  pointer-events:none;
}
.wagenda-scroll-wrap::before{
  top:0;
  background:linear-gradient(180deg,var(--white) 0%,transparent 100%);
}
.wagenda-scroll-wrap::after{
  bottom:0;
  background:linear-gradient(0deg,var(--white) 0%,transparent 100%);
}
.wagenda-scroll-track{
  display:flex;
  flex-direction:column;
  gap:0;
}
@keyframes wagendaScrollUp{
  0%{transform:translateY(0)}
  100%{transform:translateY(-50%)}
}

/* List */
.wagenda-list{
  display:flex;flex-direction:column;
  gap:8px;
}

/* Card */
.wagenda-card{
  display:flex;align-items:stretch;
  gap:12px;
  padding:12px;
  border-radius:var(--radius-lg);
  background:var(--gray-50);
  border:1px solid transparent;
  text-decoration:none;
  color:var(--text-heading);
  transition:all .25s ease;
  position:relative;
}
.wagenda-card:hover{
  background:var(--white);
  border-color:var(--primary);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.1);
  transform:translateY(-1px);
}

/* Date badge */
.wagenda-date-badge{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  min-width:48px;width:48px;
  padding:8px 4px;
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;flex-shrink:0;
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.2);
}
.wagenda-date-day{
  font-family:var(--font-heading);
  font-size:1.2rem;font-weight:800;
  line-height:1;
}
.wagenda-date-month{
  font-size:.6rem;font-weight:600;
  text-transform:uppercase;
  letter-spacing:.5px;
  opacity:.85;margin-top:2px;
}

/* Card body */
.wagenda-card-body{
  flex:1;min-width:0;
  display:flex;flex-direction:column;
  gap:4px;
  justify-content:center;
}
.wagenda-card-title{
  font-family:var(--font-heading);
  font-size:.82rem;font-weight:700;
  margin:0;
  color:var(--text-heading);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.35;
  transition:color .2s;
}
.wagenda-card:hover .wagenda-card-title{color:var(--primary)}
.wagenda-card-meta{
  display:flex;flex-wrap:wrap;
  gap:8px;
  font-size:.7rem;color:var(--text-muted);
}
.wagenda-card-meta span{
  display:inline-flex;align-items:center;gap:3px;
}
.wagenda-card-meta i{font-size:.6rem;color:var(--primary);opacity:.6}

/* Badge */
.wagenda-badge{
  display:inline-block;
  padding:2px 8px;
  border-radius:var(--radius-full);
  font-size:.6rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.3px;
  width:fit-content;
}
.wagenda-badge-today{
  background:linear-gradient(135deg,#60A5FA,#E8C547);
  color:#5C4400;
}
.wagenda-badge-upcoming{
  background:linear-gradient(135deg,var(--primary-light),var(--primary-light));
  color:var(--primary-dark);
}
.wagenda-badge-past{
  background:var(--gray-200);
  color:var(--gray-600);
}

/* Arrow */
.wagenda-arrow{
  display:flex;align-items:center;
  font-size:.7rem;color:var(--gray-300);
  transition:all .25s;opacity:.3;
  flex-shrink:0;
  align-self:center;
}
.wagenda-card:hover .wagenda-arrow{
  color:var(--primary);opacity:1;
  transform:translateX(2px);
}

/* Empty state */
.wagenda-empty{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:8px;padding:32px 16px;
  text-align:center;color:var(--text-muted);
}
.wagenda-empty i{font-size:2rem;opacity:.3}
.wagenda-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .wagenda-header{padding:14px 16px}
  .wagenda-header-icon{width:38px;height:38px;font-size:16px;border-radius:12px}
  .wagenda-tab{padding:8px 6px;font-size:.72rem}
  .wagenda-card{padding:10px;gap:10px}
  .wagenda-date-badge{min-width:42px;width:42px;padding:6px 3px}
  .wagenda-date-day{font-size:1rem}
  .wagenda-date-month{font-size:.55rem}
  .wagenda-card-title{font-size:.78rem}
  .wagenda-card-meta{font-size:.66rem}
}

/* ========== TRIO ROW â€” 3 Kolom: Peta | Aparatur | Kantor ========== */
.trio-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:stretch}
.trio-col{min-width:0}
.trio-card{background:#fff;border-radius:16px;border:1px solid rgba(var(--primary-rgb),.1);box-shadow:0 2px 20px rgba(var(--primary-rgb),.06);overflow:hidden;height:100%;display:flex;flex-direction:column;transition:box-shadow .3s,transform .3s}
.trio-card:hover{box-shadow:0 8px 36px rgba(var(--primary-rgb),.12);transform:translateY(-2px)}

/* Trio Card Header â€” elegan (konsisten dengan wcat/warsip) */
.trio-card-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.trio-card-header::after{display:none}
.trio-card-header-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;flex-shrink:0;
  color:var(--primary);
}
.trio-card-header-text{flex:1;min-width:0}
.trio-card-header-text h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}
.trio-card-header-text p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:2px 0 0;line-height:1.3;
}

/* Trio Card Body */
.trio-card-body{flex:1;position:relative;min-height:300px}
.trio-map-wrap{padding:0}
.trio-map{width:100%;height:100%;min-height:300px}
.trio-map-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--text-muted);gap:12px}
.trio-map-empty i{font-size:2.5rem;opacity:.3}
.trio-map-empty p{font-size:.85rem}

/* ========== APARATUR SECTION (di bawah Statistik Info Desa) ========== */
.aparatur-section{
  margin-top:20px;
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
}
.aparatur-section-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.aparatur-section-header::after{display:none}
.aparatur-section-icon{
  width:42px;height:42px;
  background:rgba(255,255,255,.15);
  border-radius:var(--radius-lg);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0;
  backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
}
.aparatur-section-header h3{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.95rem;font-weight:700;margin:0;line-height:1.3;
  color:#fff;
}
.aparatur-section-header p{
  font-size:.72rem;opacity:.75;margin:2px 0 0;line-height:1.3;
  color:rgba(255,255,255,.65);
}
.aparatur-section-link{
  margin-left:auto;
  font-size:.72rem;font-weight:600;
  color:rgba(255,255,255,.85);
  text-decoration:none;
  display:flex;align-items:center;gap:4px;
  white-space:nowrap;
  transition:all .2s;
  z-index:1;
}
.aparatur-section-link:hover{color:var(--primary-dark);gap:6px}
.aparatur-section-link i{font-size:.6rem;transition:transform .2s}
.aparatur-section-link:hover i{transform:translateX(2px)}

/* â”€â”€ Aparatur List (grid 3 kolom, show/hide) â”€â”€ */
.aparatur-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  padding:16px;
}
.aparatur-card{
  text-align:center;
  padding:16px 8px;
  background:var(--gray-50);
  border-radius:var(--radius-lg);
  border:1px solid transparent;
  transition:all .4s cubic-bezier(.4,0,.2,1);
}
.aparatur-card.aparatur-hidden{
  display:none;
}
.aparatur-card.aparatur-sliding-out{
  opacity:0;
  transform:translateX(-30px);
}
.aparatur-card.aparatur-sliding-in{
  opacity:0;
  transform:translateX(30px);
}
.aparatur-card:hover{
  background:var(--white);
  border-color:var(--primary);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.1);
  transform:translateY(-3px);
}
.aparatur-card-photo{
  width:80px;height:80px;
  border-radius:50%;
  overflow:hidden;
  margin:0 auto 10px;
  border:3px solid var(--primary-light);
  background:var(--gray-100);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.12);
  transition:all .3s;
}
.aparatur-card:hover .aparatur-card-photo{
  border-color:var(--primary);
  box-shadow:0 6px 24px rgba(var(--primary-rgb),.2);
}
.aparatur-card-photo img{width:100%;height:100%;object-fit:cover}
.aparatur-card-info h4{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.78rem;font-weight:700;
  color:var(--text-heading);
  margin:0 0 4px;
  line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.aparatur-card-info span{
  font-size:.68rem;
  color:var(--primary);
  font-weight:600;
  background:rgba(var(--primary-rgb),.08);
  display:inline-block;
  padding:2px 10px;
  border-radius:99px;
}

/* â”€â”€ Aparatur Navigation â”€â”€ */
.aparatur-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:0 16px 14px;
}
.aparatur-nav-btn{
  width:32px;height:32px;
  border-radius:50%;
  border:1px solid var(--border);
  background:var(--white);
  color:var(--primary);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  font-size:12px;
  transition:all .2s;
}
.aparatur-nav-btn:hover:not(:disabled){
  background:var(--primary);
  color:var(--white);
  border-color:var(--primary);
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.3);
}
.aparatur-nav-btn:disabled{
  opacity:.35;cursor:not-allowed;
}
.aparatur-nav-info{
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  min-width:80px;
  text-align:center;
}

/* ========== ALAMAT KANTOR (Trio Column) ========== */
.alamat-kantor{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:24px 16px;
  text-align:center;
  height:100%;
}
.alamat-kantor-logo-wrap{
  position:relative;
  margin-bottom:18px;
}
.alamat-kantor-logo-ring{
  width:80px;height:80px;
  border-radius:50%;
  background:linear-gradient(145deg,var(--primary) 0%,var(--primary-dark) 50%,var(--accent,#60A5FA) 100%);
  padding:3px;
  box-shadow:0 6px 24px rgba(var(--primary-rgb),.25),0 0 0 4px rgba(var(--primary-rgb),.08);
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s ease,box-shadow .3s ease;
}
.alamat-kantor-logo-ring:hover{
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 8px 32px rgba(var(--primary-rgb),.3),0 0 0 6px rgba(var(--primary-rgb),.1);
}
.alamat-kantor-logo{
  width:100%;height:100%;
  border-radius:50%;
  object-fit:contain;
  background:var(--white);
  padding:6px;
}
.alamat-kantor-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;font-weight:700;
  color:var(--text-heading);
  margin:0 0 16px;
  line-height:1.4;
}

/* -- Contact Grid -- */
.ak-contact-grid{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.ak-contact-card{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  background:var(--gray-50,#f8faf9);
  border:1px solid var(--border);
  border-radius:var(--radius-md,8px);
  transition:all .25s ease;
  cursor:default;
}
.ak-contact-card:hover{
  background:var(--white);
  border-color:var(--primary);
  box-shadow:0 2px 12px rgba(var(--primary-rgb),.1);
  transform:translateY(-1px);
}
.ak-contact-full{
  grid-column:1 / -1;
}
.ak-contact-icon{
  flex-shrink:0;
  width:30px;height:30px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  display:flex;align-items:center;justify-content:center;
  color:var(--white);
  font-size:.65rem;
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.18);
}
.ak-contact-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.ak-contact-label{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.62rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.6px;
  color:var(--primary);
  line-height:1.2;
}
.ak-contact-value{
  font-size:.76rem;
  color:var(--text-body);
  line-height:1.5;
  word-break:break-word;
}

/* Peta Fullwidth */
.peta-fullwidth{margin-top:16px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}

/* ========== SIDEBAR ========== */
.sidebar-boja{display:flex;flex-direction:column;gap:20px}
.sidebar-search{position:relative;display:flex;align-items:center}
.sidebar-search input{width:100%;padding:12px 16px 12px 42px;border:2px solid var(--border);border-radius:var(--radius-full);font-size:14px;outline:none;font-family:var(--font-body);transition:border .2s;background:var(--white)}
.sidebar-search input:focus{border-color:var(--primary)}
.sidebar-search>i{position:absolute;left:16px;color:var(--gray-400);font-size:14px}

/* ========== BOX / WIDGET ========== */
.box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.box+.box{margin-top:0}
.box-primary.box-solid{border:none}
.box-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center}
.box-primary.box-solid .box-header{background:var(--white);color:var(--text-heading);border-bottom:1px solid var(--border);border-left:4px solid var(--primary)}
.box-primary.box-solid .box-header a{color:var(--text-heading)}
.box-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px}
.box-title a{color:inherit}
.box-body{padding:16px 18px}
.box-body ul{list-style:none;padding:0;margin:0}
.box-body ul li a{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:var(--text-muted);transition:all .15s}
.box-body ul li a:hover{color:var(--primary);padding-left:4px}
.box-body ul li a i{font-size:8px;color:var(--primary-soft)}

/* ========== BUTTONS ========== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 22px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all var(--transition);line-height:1.5;font-family:var(--font-body);text-decoration:none;border-radius:var(--radius)}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);color:#fff;box-shadow:var(--shadow-primary)}
.btn-accent{background:var(--accent);color:var(--dark)}.btn-accent:hover{background:var(--accent-dark);color:#fff}
.btn-outline{border:1.5px solid var(--border);color:var(--text-muted);background:transparent;border-radius:var(--radius)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-outline-primary{border:1.5px solid var(--primary);color:var(--primary);background:transparent;border-radius:var(--radius)}.btn-outline-primary:hover{background:var(--primary);color:#fff}
.btn-secondary{background:var(--gray-700);color:#fff}.btn-secondary:hover{background:var(--dark);color:#fff}
.btn-default{background:var(--gray-200);color:var(--text-body)}.btn-default:hover{background:var(--gray-300)}
.btn-dark{background:var(--dark);color:#fff}.btn-dark:hover{background:var(--primary);color:#fff}
.btn-danger{background:#E53E3E;color:#fff}.btn-info{background:#3182CE;color:#fff}.btn-success{background:var(--primary);color:#fff}.btn-warning{background:#DD6B20;color:#fff}
.btn-block{width:100%}
.btn-sm{padding:7px 14px;font-size:12px;border-radius:var(--radius)}
.btn-lg{padding:13px 30px;font-size:15px}
.btn-xs{padding:3px 10px;font-size:11px}

/* ========== FOOTER — Wave + Light ========== */
.footer-boja{position:relative;margin-top:0;color:var(--text-body);background:#fff}
.footer-wave{position:relative;overflow:hidden;line-height:0;color:var(--gray-50)}
.footer-wave svg{position:relative;display:block;width:100%;height:40px}
.footer-main{background:var(--gray-50);padding:40px 0 24px}

/* Footer Top Row */
.footer-top-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:24px}
.footer-brand-block{display:flex;align-items:center;gap:14px}
.footer-logo-link{display:block;flex-shrink:0}
.footer-logo-img{width:52px;height:52px;object-fit:contain;border-radius:50%;border:2px solid var(--border);padding:2px;transition:all .3s}
.footer-logo-link:hover .footer-logo-img{border-color:var(--primary);box-shadow:0 0 12px rgba(var(--primary-rgb),.15)}
.footer-desa-name{font-family:var(--font-heading);font-size:1.1rem;font-weight:800;color:var(--dark);margin:0}
.footer-desa-loc{font-size:.78rem;color:var(--text-muted);margin:2px 0 0}

/* Footer Social Row */
.footer-social-row{display:flex;flex-wrap:wrap;gap:8px}
.footer-social-below{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.footer-soc{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;color:#fff;font-size:14px;transition:all .3s}
.footer-soc:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.15)}
.footer-soc-facebook{background:#1877F2}
.footer-soc-twitter{background:#1DA1F2}
.footer-soc-instagram{background:linear-gradient(135deg,#F58529,#DD2A7B,#8134AF)}
.footer-soc-telegram{background:#0088CC}
.footer-soc-whatsapp{background:#25D366}
.footer-soc-youtube{background:#FF0000}

.footer-divider{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);margin-bottom:28px}

/* Footer Columns */
.footer-columns{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px}
.footer-col-title{font-family:var(--font-heading);font-size:.85rem;font-weight:700;color:var(--dark);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.footer-col-title i{color:var(--primary);font-size:.75rem}

.footer-info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.footer-info-list li{display:flex;align-items:flex-start;gap:10px;font-size:.82rem;color:var(--text-muted);line-height:1.5}
.footer-info-list li i{color:var(--primary);font-size:.72rem;margin-top:4px;flex-shrink:0;width:14px}

.footer-nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.footer-nav-list li a{font-size:.82rem;color:var(--text-muted);transition:all .2s;display:inline-flex;align-items:center;gap:0;padding:2px 0}
.footer-nav-list li a::before{content:"\f105";font-family:"Font Awesome 5 Free";font-weight:900;font-size:.6rem;color:var(--primary);opacity:.5;margin-right:8px;transition:all .2s}
.footer-nav-list li a:hover{color:var(--primary);padding-left:4px}
.footer-nav-list li a:hover::before{opacity:1;transform:translateX(2px)}

.footer-bsre-row{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);text-align:center}
.footer-bsre-row img{width:120px;opacity:.5;transition:opacity .3s}
.footer-bsre-row img:hover{opacity:.8}

/* Footer Bottom Bar */
.footer-bottom-bar{background:var(--dark);color:rgba(255,255,255,.5);padding:16px 0}
.footer-bottom-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:.72rem}
.footer-bottom-inner p{margin:0}
.footer-bottom-inner a{color:rgba(255,255,255,.6);transition:color .2s}
.footer-bottom-inner a:hover{color:var(--primary-soft)}

/* ========== MOBILE PANEL ========== */
.mobile-panel{position:fixed;inset:0;z-index:2000;display:flex}
.mobile-panel-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.mobile-panel-body{position:relative;width:300px;max-width:85vw;height:100%;background:var(--white);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow-y:auto;z-index:1}
.mobile-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}
.mobile-panel-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px}
.mobile-panel-brand img{width:36px;height:36px;border-radius:50%;object-fit:contain}
.mobile-panel-close{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;font-size:16px;border-radius:var(--radius)}
.mobile-panel-close:hover{background:var(--gray-100)}
.mobile-search{display:flex;margin:14px 16px;border-radius:var(--radius-full);overflow:hidden;border:2px solid var(--border)}
.mobile-search input{flex:1;padding:10px 16px;border:none;font-size:14px;outline:none;font-family:var(--font-body)}
.mobile-search button{padding:10px 16px;background:var(--primary);color:#fff;border:none;cursor:pointer}
.mobile-menu-list{list-style:none;margin:0;padding:0;flex:1}
.mobile-menu-list>li{border-bottom:1px solid var(--gray-200)}
.mobile-menu-list>li>a{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;font-size:14px;font-weight:500;color:var(--text-body);transition:all .15s}
.mobile-menu-list>li>a:hover{color:var(--primary);background:var(--primary-50)}
/* Active mobile menu item */
.mobile-menu-list>li.nav-active>a{color:var(--primary);background:var(--primary-50);font-weight:600;border-left:3px solid var(--primary)}
.mobile-menu-list>li>a .fa-chevron-down{font-size:10px;transition:transform .3s}
.mobile-submenu{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--primary-light)}
.mobile-submenu li a{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:13px;color:var(--text-muted);transition:all .15s}
.mobile-submenu li a:hover{color:var(--primary)}
.mobile-submenu.level-2{border-left-color:var(--gray-300)}
.mobile-panel-footer{padding:16px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border)}
.rotate-180{transform:rotate(180deg)!important}

/* ========== CATEGORY BAR ========== */
.category-bar-boja{background:var(--gray-50);border-bottom:1px solid var(--border);padding:8px 0;font-size:13px}
.category-inner{display:flex;align-items:center;justify-content:space-between;gap:8px}
.category-list{display:flex;flex-wrap:wrap;gap:2px;flex:1;list-style:none;margin:0;padding:0}
.category-list li a{display:inline-block;padding:4px 12px;color:var(--text-muted);transition:all .2s;border-radius:var(--radius-full)}
.category-list li a:hover{color:var(--primary);background:var(--primary-50)}
.category-actions{display:flex;gap:6px;flex-shrink:0}

/* ========== BACK TO TOP ========== */
.back-to-top{position:fixed;bottom:24px;right:24px;z-index:999;width:44px;height:44px;background:var(--primary-darker);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;text-decoration:none;opacity:0;pointer-events:none;font-size:14px;border-radius:50%;box-shadow:var(--shadow-primary);border:none}
.back-to-top:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}

/* ========== BREADCRUMB ========== */
.breadcrumb-boja,.breadcrumb{padding:10px 0;font-size:13px}
.breadcrumb-boja ol,.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px;list-style:none;padding:0;margin:0}
.breadcrumb-boja ol li+li::before,.breadcrumb ol li+li::before{content:'\f105';font-family:'Font Awesome 5 Free';font-weight:900;color:var(--gray-400);margin-right:4px;font-size:10px}
.breadcrumb-boja ol li a,.breadcrumb ol li a{color:var(--primary);font-weight:500}

/* ========== PAGINATION ========== */
.pagination-boja{padding:16px 0}

/* New elegant pagination */
.pag-boja{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  padding:24px 0 8px;
}
.pag-info{
  font-size:.82rem;
  color:var(--text-muted);
  font-weight:500;
  margin:0;
}
.pag-info strong{
  color:var(--primary-dark);
  font-weight:700;
}
.pag-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:center;
  list-style:none;
  padding:0;margin:0;
}
.pag-list li a,
.pag-list li span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;height:38px;
  padding:0 12px;
  border:1.5px solid var(--border);
  font-size:.82rem;
  font-weight:600;
  color:var(--text-body);
  background:var(--white);
  cursor:pointer;
  transition:all .2s ease;
  border-radius:var(--radius-lg);
  font-family:var(--font-heading);
  text-decoration:none;
}
.pag-list li a:hover{
  border-color:var(--primary);
  color:var(--primary);
  background:var(--primary-50);
  transform:translateY(-1px);
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.12);
}
.pag-list .pag-active a{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 3px 12px rgba(var(--primary-rgb),.25);
  transform:translateY(-1px);
}
.pag-list .pag-disabled span{
  color:var(--gray-300);
  background:var(--gray-50);
  border-color:var(--gray-200);
  cursor:default;
}
.pag-list .pag-dots span{
  border:none;
  background:transparent;
  color:var(--text-muted);
  min-width:28px;
  padding:0;
  cursor:default;
  font-size:1rem;
  letter-spacing:2px;
}

/* Legacy paging fallback */
.pagination{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;padding:12px 0;list-style:none}
.pagination li{list-style:none}
.pagination .page-link,.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-body);background:var(--white);cursor:pointer;transition:all .15s;border-radius:var(--radius)}
.pagination .page-link:hover,.pagination a:hover{border-color:var(--primary);color:var(--primary)}
.pagination .active .page-link,.pagination .page-link.active{background:var(--primary);border-color:var(--primary);color:#fff}
.paging{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;padding:8px 0}
.paging a,.paging span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-body);background:var(--white);transition:all .15s;border-radius:var(--radius)}
.paging a:hover{border-color:var(--primary);color:#fff;background:var(--primary)}
.paging .active-page{background:var(--primary);border-color:var(--primary);color:#fff}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   AGENDA + KOMENTAR 2-GRID ROW
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Row Container â”€â”€ */
.agenda-komentar-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:32px;
  margin-bottom:16px;
}
.agenda-komentar-row.ak-row-single{
  grid-template-columns:1fr;
}
.agenda-komentar-row.ak-row-single-agenda{
  grid-template-columns:1fr;
}

/* â”€â”€ Columns â”€â”€ */
.ak-agenda,.ak-komentar{
  min-width:0;
}

/* â”€â”€ Card Shared â”€â”€ */
.ak-card{
  background:#fff;
  border-radius:16px;
  box-shadow:0 2px 16px rgba(0,0,0,.07);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  height:100%;
}

/* â”€â”€ Card Header (gradient) â”€â”€ */
.ak-card-header{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.ak-card-header::after{display:none}
.ak-card-header-icon{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary-50);
  border-radius:10px;
  font-size:1.05rem;
  flex-shrink:0;
  color:var(--primary);
}
.ak-card-header-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.ak-card-header-sub{
  font-size:.78rem;
  margin:2px 0 0;
  color:var(--text-muted);
}

/* â”€â”€ AGENDA: Viewport + Track + Items â”€â”€ */
.ak-agenda-viewport{
  overflow:hidden;
  padding:0;
  flex:1 1 auto;
}
.ak-agenda-track{
  display:flex;
  flex-direction:column;
}
.ak-agenda-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 20px;
  text-decoration:none;
  color:inherit;
  border-bottom:1px solid #f0f0f0;
  transition:background .2s,opacity .35s,transform .35s;
  position:relative;
}
.ak-agenda-item:last-child{
  border-bottom:none;
}
.ak-agenda-item:hover{
  background:#f7faf8;
}
.ak-agenda-hidden{
  display:none !important;
}

/* Date badge */
.ak-agenda-date{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:54px;height:54px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  border-radius:12px;
  flex-shrink:0;
  color:#fff;
  line-height:1.15;
}
.ak-agenda-date-num{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.25rem;
  font-weight:800;
}
.ak-agenda-date-mon{
  font-size:.65rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.5px;
  opacity:.85;
}

/* Info */
.ak-agenda-info{
  flex:1;
  min-width:0;
}
.ak-agenda-info h4{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;
  font-weight:700;
  color:#1a202c;
  margin:4px 0 3px;
  line-height:1.35;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.ak-agenda-badge{
  display:inline-block;
  padding:2px 10px;
  border-radius:20px;
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.3px;
}
.ak-badge-today{
  background:#DBEAFE;color:#1E3A5F;
}
.ak-badge-upcoming{
  background:#dbeafe;color:#1e40af;
}
.ak-badge-past{
  background:#f3f4f6;color:#6b7280;
}
.ak-agenda-loc{
  font-size:.76rem;
  color:#6b7280;
  display:flex;
  align-items:center;
  gap:4px;
}
.ak-agenda-loc i{
  color:var(--primary);
  font-size:.7rem;
}
.ak-agenda-arrow{
  color:#cbd5e0;
  font-size:.8rem;
  flex-shrink:0;
  transition:color .2s,transform .2s;
}
.ak-agenda-item:hover .ak-agenda-arrow{
  color:var(--primary);
  transform:translateX(3px);
}

/* â”€â”€ AGENDA: Nav Bar â”€â”€ */
.ak-agenda-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 20px;
  border-top:1px solid #e8e8e8;
  background:#fafafa;
  border-radius:0 0 16px 16px;
}
.ak-agenda-info{
  font-size:.78rem;
  color:#6b7280;
  font-weight:500;
}
.ak-agenda-nav-btns{
  display:flex;
  gap:6px;
}
.ak-agenda-btn{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:8px;
  color:#374151;
  font-size:.8rem;
  cursor:pointer;
  transition:all .2s;
  padding:0;
  line-height:1;
}
.ak-agenda-btn:hover:not(:disabled){
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.ak-agenda-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* â”€â”€ KOMENTAR: Viewport + Track + Items â”€â”€ */
.ak-komentar-viewport{
  overflow:hidden;
  padding:0;
  flex:1 1 auto;
}
.ak-komentar-track{
  display:flex;
  flex-direction:column;
}
.ak-komentar-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:16px 20px;
  border-bottom:1px solid #f0f0f0;
  transition:background .2s,opacity .35s,transform .35s;
}
.ak-komentar-item:last-child{
  border-bottom:none;
}
.ak-komentar-item:hover{
  background:#f7faf8;
}
.ak-komentar-hidden{
  display:none !important;
}

/* Avatar circle */
.ak-komentar-avatar{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  border-radius:50%;
  flex-shrink:0;
  color:#fff;
  font-weight:700;
  font-size:1rem;
  font-family:'Plus Jakarta Sans',sans-serif;
}

/* Body */
.ak-komentar-body{
  flex:1;
  min-width:0;
}
.ak-komentar-quote{
  background:#f7faf8;
  border-radius:10px;
  padding:12px 14px;
  position:relative;
  margin-bottom:8px;
  border-left:3px solid var(--primary);
}
.ak-komentar-quote-icon{
  position:absolute;
  top:10px;left:12px;
  font-size:.85rem;
  color:var(--primary);
  opacity:.35;
}
.ak-komentar-quote p{
  margin:0;
  font-size:.85rem;
  color:#374151;
  line-height:1.55;
  padding-left:18px;
}

/* Meta */
.ak-komentar-meta{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  font-size:.76rem;
  color:#6b7280;
}
.ak-komentar-author i,
.ak-komentar-date i{
  margin-right:3px;
  color:var(--primary);
  font-size:.7rem;
}
.ak-komentar-link{
  margin-left:auto;
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  font-size:.78rem;
}
.ak-komentar-link:hover{
  text-decoration:underline;
}
.ak-komentar-link i{
  margin-left:3px;
  font-size:.65rem;
}

/* â”€â”€ KOMENTAR: Nav Bar â”€â”€ */
.ak-komentar-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 20px;
  border-top:1px solid #e8e8e8;
  background:#fafafa;
  border-radius:0 0 16px 16px;
}
.ak-komentar-info{
  font-size:.78rem;
  color:#6b7280;
  font-weight:500;
}
.ak-komentar-nav-btns{
  display:flex;
  gap:6px;
}
.ak-komentar-btn{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:8px;
  color:#374151;
  font-size:.8rem;
  cursor:pointer;
  transition:all .2s;
  padding:0;
  line-height:1;
}
.ak-komentar-btn:hover:not(:disabled){
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.ak-komentar-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* â”€â”€ Responsive Agenda+Komentar â”€â”€ */
@media(max-width:991px){
  .agenda-komentar-row{
    grid-template-columns:1fr;
    gap:20px;
  }
}
@media(max-width:575px){
  .ak-card-header{
    padding:14px 16px;
    gap:10px;
  }
  .ak-card-header-icon{
    width:36px;height:36px;
    font-size:1rem;
    border-radius:10px;
  }
  .ak-card-header-title{
    font-size:1rem;
  }
  .ak-agenda-item{
    padding:12px 14px;
    gap:10px;
  }
  .ak-agenda-date{
    width:46px;height:46px;
    border-radius:10px;
  }
  .ak-agenda-date-num{
    font-size:1.05rem;
  }
  .ak-agenda-info h4{
    font-size:.84rem;
  }
  .ak-komentar-item{
    padding:12px 14px;
    gap:10px;
  }
  .ak-komentar-avatar{
    width:36px;height:36px;
    font-size:.85rem;
  }
  .ak-komentar-quote{
    padding:10px 12px;
  }
  .ak-komentar-quote p{
    font-size:.8rem;
  }
  .ak-agenda-nav,
  .ak-komentar-nav{
    padding:8px 14px;
  }
}

/* ========== FORMS ========== */
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-heading)}
.form-input,.form-control,input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="tel"],input[type="search"],select,textarea{width:100%;padding:10px 16px;border:2px solid var(--border);border-radius:var(--radius);font-size:14px;transition:border .2s;background:var(--white);color:var(--text-body);font-family:var(--font-body);outline:none}
.form-input:focus,.form-control:focus,input:focus,select:focus,textarea:focus{border-color:var(--primary)}
textarea{min-height:100px;resize:vertical}

/* ========== TABLES ========== */
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}
.table thead th{background:var(--primary-50);font-weight:600;font-size:12px;color:var(--primary-darker)}
.table-striped tbody tr:nth-child(even){background:var(--gray-50)}
.table-hover tbody tr:hover{background:var(--primary-50)}
.table-responsive{overflow-x:auto}
.table-bordered th,.table-bordered td{border:1px solid var(--border)}

/* ========== TABS ========== */
.nav-tabs{display:flex;border-bottom:2px solid var(--border);gap:0;padding:0;margin-bottom:16px;list-style:none}
.nav-tabs li,.nav-tabs .nav-item{flex:1;text-align:center}
.nav-tabs a,.nav-tabs .nav-link{display:block;padding:12px 16px;font-size:13px;font-weight:500;color:var(--text-muted);border-bottom:3px solid transparent;transition:all .2s;cursor:pointer;background:transparent;text-decoration:none}
.nav-tabs a:hover{color:var(--primary)}
.nav-tabs a.active,.nav-tabs .nav-link.active,.nav-tabs li.active a{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}
.tab-pane{display:none}.tab-pane.show.active,.tab-pane.active{display:block}

/* ========== ACCORDION / PANEL ========== */
.accordion-item{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:8px}
.accordion-button{width:100%;display:flex;align-items:center;padding:14px 18px;font-weight:600;background:var(--white);border:none;cursor:pointer;font-family:var(--font-body);font-size:14px}
.accordion-button:hover{background:var(--gray-50)}
.accordion-body{padding:12px 18px}
.panel{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}
.panel-heading{padding:12px 16px;background:var(--gray-50);cursor:pointer;font-weight:600}
.panel-body{padding:12px 16px}
.panel-collapse{border-top:1px solid var(--border)}

/* ========== MODALS ========== */
.modal{display:none;position:fixed;inset:0;z-index:1050;overflow-y:auto}
.modal.show,.modal.in{display:block}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1040}
.modal-dialog{max-width:600px;margin:2rem auto;position:relative;z-index:1055}
.modal-lg{max-width:900px}.modal-sm{max-width:400px}
.modal-content{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border)}
.modal-title{font-size:16px;font-weight:700}
.modal-body{padding:24px}
.modal-footer{padding:14px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
.btn-close,.close{background:none;border:none;font-size:18px;cursor:pointer;opacity:.5;line-height:1}
.btn-close:hover,.close:hover{opacity:1}

/* ========== ALERTS ========== */
.alert{padding:14px 18px;font-size:13px;margin-bottom:16px;border-radius:var(--radius)}
.alert-success{background:var(--primary-light);color:#22543D;border:1px solid var(--primary-soft)}
.alert-danger,.alert-error{background:#FED7D7;color:#9B2C2C;border:1px solid #FC8181}
.alert-warning{background:#FEFCBF;color:#92400E;border:1px solid #F6E05E}
.alert-info{background:#BEE3F8;color:#2A4365;border:1px solid #63B3ED}

/* ========== LABELS ========== */
.label,.badge{display:inline-flex;align-items:center;gap:3px;padding:3px 10px;font-size:11px;font-weight:600;color:#fff;border-radius:var(--radius-full)}
.label-primary,.badge-primary{background:var(--primary)}
.label-danger,.badge-danger{background:#E53E3E}
.label-success,.badge-success{background:var(--primary)}
.label-info,.badge-info{background:#3182CE}
.label-warning,.badge-warning{background:#DD6B20}
.label-default,.badge-default{background:var(--gray-500)}

/* ========== PROGRESS ========== */
.progress{height:8px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}
.progress-bar{height:100%;background:var(--primary);transition:width .6s ease;border-radius:var(--radius-full)}

/* ========== COMMENTS ========== */
.comments-boja{margin-top:24px}
.comments-boja .comment-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--gray-200)}
.comments-boja .comment-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;flex-shrink:0;font-size:13px}
.comments-boja .comment-body{flex:1;min-width:0}
.comments-boja .comment-author{font-weight:600;font-size:13px}
.comments-boja .comment-date{font-size:11px;color:var(--text-muted)}
.comments-boja .comment-text{font-size:13px;margin-top:4px;line-height:1.7}
.comment-form-boja{margin-top:20px}
.comment-form-boja label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}

/* ========== ARTICLE DETAIL ========== */
.article-detail-title{font-size:1.75rem;font-weight:800;line-height:1.3;margin-bottom:14px}
.article-detail-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--text-muted);margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.article-detail-meta span{display:inline-flex;align-items:center;gap:4px}
.article-detail-meta i{color:var(--primary);font-size:11px}
.article-featured-image{display:block;margin-bottom:20px;overflow:hidden;border-radius:var(--radius-lg)}
.article-featured-image img{width:100%;transition:transform .3s}
.article-featured-image:hover img{transform:scale(1.02)}

/* ========== EMPTY STATE ========== */
.empty-state-boja{text-align:center;padding:56px 20px}
.empty-state-boja img{width:160px;height:auto;margin:0 auto 20px;opacity:.5}
.empty-state-boja h4{font-size:17px;font-weight:700;margin-bottom:6px}
.empty-state-boja p{font-size:14px;color:var(--text-muted)}

/* ========== CONTENT RICH TEXT ========== */
.content p{margin-bottom:14px;line-height:1.8}
.content h1{font-size:1.75rem;margin-bottom:14px}
.content h2{font-size:1.5rem;margin-bottom:14px}
.content h3{font-size:1.25rem;margin-bottom:10px}
.content ul{list-style:disc;padding-left:24px;margin-bottom:14px}
.content ol{list-style:decimal;padding-left:24px;margin-bottom:14px}
.content li{margin-bottom:4px;line-height:1.7}
.content img{margin:10px 0;border-radius:var(--radius)}
.content a{color:var(--primary);text-decoration:underline}
.content blockquote{border-left:4px solid var(--primary);padding:14px 20px;margin:14px 0;background:var(--primary-50);font-style:italic;color:var(--gray-700);border-radius:0 var(--radius) var(--radius) 0}
.content table th,.content table td{padding:10px 12px;border:1px solid var(--border)}
.content table th{background:var(--primary-50)}

/* ========== SHARE ========== */
.share-boja{
  display:flex;align-items:center;flex-wrap:wrap;gap:12px;
  margin-top:24px;padding:18px 22px;
  background:linear-gradient(135deg,rgba(47,133,90,.04),rgba(47,133,90,.01));
  border:1px solid rgba(47,133,90,.12);
  border-radius:12px;
}
.share-label{
  font-size:.88rem;font-weight:600;color:var(--primary-darker);
  display:inline-flex;align-items:center;gap:6px;
  font-family:'Plus Jakarta Sans',sans-serif;
  white-space:nowrap;
}
.share-label i{font-size:.82rem;color:var(--primary)}
.share-buttons{display:flex;flex-wrap:wrap;gap:8px}
.share-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;color:#fff;font-size:15px;
  border-radius:50%;transition:all .25s;text-decoration:none;
}
.share-btn:hover{transform:translateY(-3px);color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.share-btn.facebook{background:#1877F2}
.share-btn.twitter{background:#1DA1F2}
.share-btn.whatsapp{background:#25D366}
.share-btn.telegram{background:#0088cc}
/* Sticky share sidebar */
.sticky-share-boja{
  position:fixed;left:0;top:50%;transform:translateY(-50%);
  z-index:90;display:flex;flex-direction:column;
  border-radius:0 10px 10px 0;overflow:hidden;
  box-shadow:0 4px 18px rgba(0,0,0,.12);
}
.sticky-share-boja a{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;color:#fff;font-size:15px;
  transition:all .2s;text-decoration:none;
}
.sticky-share-boja a:hover{filter:brightness(1.15);color:#fff}
.sticky-share-boja a:nth-child(1){background:#1877F2}
.sticky-share-boja a:nth-child(2){background:#1DA1F2}
.sticky-share-boja a:nth-child(3){background:#25D366}
.sticky-share-boja a:nth-child(4){background:#0088cc}
/* Legacy compat */
.share-buttons a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;color:#fff;font-size:14px;border-radius:50%;transition:all .2s}
.share-buttons a:hover{transform:translateY(-2px);color:#fff}
.sticky-share{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column}
.sticky-share a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:#fff;font-size:14px;transition:all .2s}
/* Responsive share */
@media(max-width:639px){
  .share-boja{padding:14px 16px;gap:10px;border-radius:10px;flex-direction:column;align-items:flex-start}
  .share-btn{width:34px;height:34px;font-size:13px}
  .sticky-share-boja a{width:34px;height:34px;font-size:13px}
  .sticky-share-boja{display:none}
}

/* ========== GRIDS (pemerintah, galeri, lapak, dll) ========== */
/* Pemerintah (new elegant) */
.pem-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:20px;
}
.pem-card{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;transition:all .3s;
  text-align:center;position:relative;
}
.pem-card:hover{box-shadow:0 6px 24px rgba(47,133,90,.15);transform:translateY(-4px)}
.pem-card-photo-wrap{
  position:relative;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 60%,var(--primary-darker) 100%);
  padding:28px 20px 48px;
}
.pem-card-photo-wrap img{
  width:90px;height:90px;border-radius:50%;
  object-fit:cover;border:4px solid rgba(255,255,255,.3);
  box-shadow:0 4px 16px rgba(0,0,0,.15);
  display:block;margin:0 auto;
  background:#e5e7eb;
}
.pem-badge{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.68rem;font-weight:700;
  padding:3px 10px;border-radius:20px;
  position:absolute;bottom:10px;left:50%;transform:translateX(-50%);
  white-space:nowrap;
}
.pem-badge-hadir{background:#d1fae5;color:#065f46}
.pem-badge-absent{background:#fee2e2;color:#991b1b}
.pem-card-body{padding:16px 14px 20px}
.pem-name{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;font-weight:800;
  color:var(--primary-darker);margin:0 0 4px;
}
.pem-jabatan{
  display:block;font-size:.78rem;font-weight:600;
  color:var(--primary);margin-bottom:6px;
}
.pem-nip{
  display:flex;align-items:center;justify-content:center;gap:4px;
  font-size:.72rem;color:#6b7280;margin-bottom:8px;
}
.pem-nip i{font-size:.65rem;color:var(--primary)}
.pem-socials{
  display:flex;justify-content:center;gap:6px;margin-top:8px;
}
.pem-social-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;
  background:var(--primary-light);color:var(--primary);
  font-size:.72rem;transition:all .2s;
}
.pem-social-btn:hover{background:var(--primary);color:#fff;transform:scale(1.1)}
.pem-empty{
  text-align:center;padding:48px 20px;color:#6b7280;
  grid-column:1/-1;
}
.pem-empty i{font-size:2.5rem;color:#d1d5db;margin-bottom:10px;display:block}
.pem-empty p{font-size:.88rem}

/* SOTK Chart */
.sotk-chart-card{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;margin-bottom:24px;
}
.sotk-chart-inner{padding:20px;overflow-x:auto}
.sotk-chart-loading{
  text-align:center;padding:48px 20px;color:#6b7280;
}
.sotk-chart-loading i{font-size:1.4rem;color:var(--primary);display:block;margin-bottom:8px}
.sotk-chart-loading p{font-size:.88rem;margin:0}

/* Static article pages (visi, misi) */
.statis-content-card{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;margin-bottom:24px;
}
.statis-featured-image{
  display:block;overflow:hidden;
}
.statis-featured-image img{
  width:100%;max-height:360px;object-fit:cover;
  transition:transform .3s;
}
.statis-featured-image:hover img{transform:scale(1.02)}
.statis-body{padding:24px 28px}
.statis-body p{line-height:1.9;font-size:.92rem;color:#374151}
.statis-body h1,.statis-body h2,.statis-body h3{color:var(--primary-darker)}
.statis-body ul{list-style:none;padding-left:0}
.statis-body ul li{
  position:relative;padding-left:20px;margin-bottom:8px;
  line-height:1.8;font-size:.9rem;
}
.statis-body ul li::before{
  content:'';position:absolute;left:0;top:10px;
  width:8px;height:8px;border-radius:50%;
  background:var(--primary);
}
.statis-body ol li{line-height:1.8;font-size:.9rem;margin-bottom:6px}
.statis-body blockquote{
  border-left:4px solid var(--primary);
  padding:16px 20px;margin:20px 0;
  background:linear-gradient(135deg,rgba(47,133,90,.04),rgba(47,133,90,.01));
  border-radius:0 12px 12px 0;
  font-style:italic;color:#4b5563;
}
.statis-body table th,.statis-body table td{padding:10px 14px;border:1px solid #e5e7eb}
.statis-body table th{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.82rem;
}
.statis-dokumen{
  display:flex;align-items:flex-start;gap:12px;
  margin:20px 28px;padding:16px 20px;
  background:#EFF6FF;border-radius:12px;
  border:1px solid rgba(47,133,90,.15);
}
.statis-dokumen > i{color:var(--primary);font-size:1.1rem;margin-top:2px}
.statis-dokumen strong{display:block;font-size:.82rem;color:var(--primary-darker);margin-bottom:4px}
.statis-dokumen a{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.84rem;color:var(--primary);font-weight:600;
  text-decoration:none;transition:color .2s;
}
.statis-dokumen a:hover{color:var(--primary-darker);text-decoration:underline}
.statis-meta-footer{
  display:flex;flex-wrap:wrap;gap:16px;
  padding:14px 28px;
  border-top:1px solid #f0f0f0;
  font-size:.78rem;color:#6b7280;
}
.statis-meta-footer span{display:inline-flex;align-items:center;gap:4px}
.statis-meta-footer i{color:var(--primary);font-size:.7rem}

.galeri-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.galeri-card{overflow:hidden;position:relative;border-radius:var(--radius-lg);transition:all .2s}
.galeri-card:hover{box-shadow:var(--shadow-md)}
.galeri-card img{width:100%;height:180px;object-fit:cover;transition:transform .3s}
.galeri-card:hover img{transform:scale(1.03)}
.lapak-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.lapak-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all .2s}
.lapak-card:hover{box-shadow:var(--shadow-md)}
.lapak-card img{width:100%;height:160px;object-fit:cover}
.lapak-card .lapak-body{padding:14px}
.lapak-card h4{font-size:14px;margin-bottom:3px}
.lapak-card .price{color:var(--primary);font-weight:700}
/* === Pembangunan Index Cards === */
.pembangunan-grid{display:grid;grid-template-columns:1fr;gap:24px}
.pembangunan-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--border);transition:all .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.pembangunan-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(var(--primary-rgb),.13);border-color:var(--primary-light)}
.pembangunan-card-img{position:relative;overflow:hidden;height:200px}
.pembangunan-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.pembangunan-card:hover .pembangunan-card-img img{transform:scale(1.06)}
.pembangunan-card-badge{position:absolute;top:12px;left:12px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-size:.7rem;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.3px;box-shadow:0 2px 8px rgba(var(--primary-rgb),.3)}
.pembangunan-card-body{padding:20px;display:flex;flex-direction:column;flex:1}
.pembangunan-card-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.05rem;font-weight:700;color:var(--dark);margin:0 0 10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pembangunan-card-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--text-muted);margin-bottom:12px}
.pembangunan-card-meta span{display:inline-flex;align-items:center;gap:5px}
.pembangunan-card-meta i{color:var(--primary);font-size:.7rem}
.pembangunan-card-desc{font-size:.84rem;color:var(--text-secondary);line-height:1.6;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.pembangunan-progress{margin-bottom:16px}
.pembangunan-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pembangunan-progress-label{font-size:.75rem;font-weight:600;color:var(--text-secondary)}
.pembangunan-progress-value{font-size:.75rem;font-weight:700;color:var(--primary)}
.pembangunan-progress-bar{width:100%;height:8px;background:var(--primary-50);border-radius:99px;overflow:hidden;position:relative}
.pembangunan-progress-fill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative;min-width:4px}
.pembangunan-progress-fill.progress-high{background:linear-gradient(90deg,var(--primary),var(--primary-dark))}
.pembangunan-progress-fill.progress-mid{background:linear-gradient(90deg,var(--accent),#e6c84a)}
.pembangunan-progress-fill.progress-low{background:linear-gradient(90deg,#e67e22,#d35400)}
.pembangunan-progress-fill.progress-none{background:var(--text-muted)}
.pembangunan-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--border)}
.pembangunan-card-footer .btn-detail{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--primary);text-decoration:none;padding:6px 14px;border-radius:var(--radius);border:1.5px solid var(--primary);transition:all .25s}
.pembangunan-card-footer .btn-detail:hover{background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(var(--primary-rgb),.25)}
.pembangunan-card-footer .btn-lokasi{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text-muted);cursor:pointer;transition:color .2s;background:none;border:none;padding:4px 8px}
.pembangunan-card-footer .btn-lokasi:hover{color:var(--primary)}
.pembangunan-card-status{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px}
.pembangunan-card-status.status-selesai{background:#DBEAFE;color:#1D4ED8}
.pembangunan-card-status.status-proses{background:#fef9c3;color:#a16207}
.pembangunan-card-status.status-rencana{background:#f0f4ff;color:#4f46e5}
/* === Pembangunan Detail === */
.pembangunan-detail-wrap{display:grid;grid-template-columns:1fr;gap:28px}
.pembangunan-detail-main{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--border)}
.pembangunan-detail-hero{position:relative;height:320px;overflow:hidden}
.pembangunan-detail-hero img{width:100%;height:100%;object-fit:cover}
.pembangunan-detail-hero-overlay{position:absolute;bottom:0;left:0;right:0;padding:24px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff}
.pembangunan-detail-hero-overlay h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.4rem;font-weight:700;margin:0 0 4px}
.pembangunan-detail-hero-overlay .meta{font-size:.82rem;opacity:.85}
.pembangunan-detail-info{padding:24px}
.pembangunan-detail-table{width:100%;border-collapse:collapse}
.pembangunan-detail-table tr{border-bottom:1px solid var(--border)}
.pembangunan-detail-table tr:last-child{border-bottom:none}
.pembangunan-detail-table th{width:160px;padding:12px 16px 12px 0;font-size:.84rem;font-weight:600;color:var(--text-secondary);vertical-align:top;white-space:nowrap}
.pembangunan-detail-table td{padding:12px 0;font-size:.84rem;color:var(--dark)}
.pembangunan-detail-sidebar{display:flex;flex-direction:column;gap:24px}
.pembangunan-detail-box{background:var(--white);border-radius:var(--radius-lg);box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid var(--border);overflow:hidden}
.pembangunan-detail-box-header{padding:16px 20px;border-bottom:1px solid var(--border);border-left:4px solid var(--primary);display:flex;align-items:center;gap:10px;background:var(--white)}
.pembangunan-detail-box-header i{color:var(--primary);font-size:1rem}
.pembangunan-detail-box-header h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:1rem;font-weight:700;color:var(--dark);margin:0}
.pembangunan-detail-box-body{padding:20px}
.pembangunan-dok-item{margin-bottom:20px;text-align:center}
.pembangunan-dok-item:last-child{margin-bottom:0}
.pembangunan-dok-item img{width:100%;border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:opacity .2s}
.pembangunan-dok-item img:hover{opacity:.85}
.pembangunan-dok-item .dok-label{font-size:.82rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:6px}
.pembangunan-dok-item .dok-label i{color:var(--primary)}
.pembangunan-map-container{height:340px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.pembangunan-empty-dok{text-align:center;padding:24px;color:var(--text-muted);font-size:.85rem}
/* APBDes — Simple Clean Table */
.apbdesa-simple{padding:32px 0 24px}
.apbdesa-simple-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:0 4px}
.apbdesa-simple-header i{font-size:1.1rem;color:var(--primary)}
.apbdesa-simple-header h2{font-family:var(--font-heading);font-size:1.15rem;font-weight:800;color:var(--dark);margin:0}
.apbdesa-simple-body{display:flex;flex-direction:column;gap:20px}
.apbdesa-simple-group{background:#fff;border-radius:12px;border:1px solid var(--border);overflow:hidden}
.apbdesa-simple-group-title{font-family:var(--font-heading);font-size:.85rem;font-weight:700;color:var(--dark);margin:0;padding:12px 16px;background:var(--gray-50);border-bottom:1px solid var(--border)}
.apbdesa-simple-table-wrap{overflow-x:auto}
.apbdesa-simple-table{width:100%;border-collapse:collapse;font-size:.8rem}
.apbdesa-simple-table thead th{padding:10px 14px;text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);background:var(--gray-50);border-bottom:2px solid var(--border)}
.apbdesa-simple-table thead th:nth-child(2),.apbdesa-simple-table thead th:nth-child(3),.apbdesa-simple-table thead th:nth-child(4){text-align:right}
.apbdesa-simple-table tbody td{padding:10px 14px;border-bottom:1px solid var(--gray-100);vertical-align:middle}
.apbdesa-simple-label{font-weight:600;color:var(--dark)}
.apbdesa-simple-money{text-align:right;font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;color:var(--text-body);white-space:nowrap}
.apbdesa-simple-persen{font-weight:800;font-size:.78rem;font-family:"Plus Jakarta Sans",sans-serif}
.apbdesa-simple-table tbody tr:last-child td{border-bottom:none}
.apbdesa-simple-table tbody tr:hover{background:var(--primary-50)}

/* ========== THIRD-PARTY OVERRIDES ========== */
.spinner-grow{display:inline-block;width:2rem;height:2rem;background-color:var(--primary);border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}
@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}
.visually-hidden,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.owl-carousel .owl-dots{text-align:center;padding:12px 0}
.owl-carousel .owl-dot span{width:10px;height:10px;margin:0 3px;border-radius:50%;background:var(--gray-300);display:inline-block;transition:all .3s}
.owl-carousel .owl-dot.active span{background:var(--primary);width:24px;border-radius:5px}
#map_canvas,#map_wilayah,#map_beranda,.map-container,[id^="map"]{overflow:hidden;z-index:1;min-height:300px}
.select2-container .select2-selection--single{height:40px;border:2px solid var(--border)!important;border-radius:var(--radius)!important}
.select2-container .select2-selection--single .select2-selection__rendered{line-height:36px;padding-left:12px}
.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{border:2px solid var(--border);padding:6px 12px;border-radius:var(--radius)}
.dataTables_wrapper .dataTables_info{font-size:12px;color:var(--text-muted)}
table.dataTable thead th{background:var(--primary-50);font-weight:600;font-size:12px}

/* ========== UTILITY CLASSES ========== */
.text-primary{color:var(--primary)!important}.text-secondary-color{color:var(--gray-700)!important}.text-accent{color:var(--accent)!important}.text-muted{color:var(--text-muted)!important}.text-white{color:#fff!important}.text-dark{color:var(--dark)!important}
.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}
.text-xs{font-size:11px}.text-sm{font-size:12px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:22px}.text-3xl{font-size:28px}.text-h6{font-size:14px;font-weight:600}
.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-light{font-weight:300}
.bg-primary{background-color:var(--primary)}.bg-primary-100,.bg-primary-light{background:var(--primary-light)}.bg-white{background-color:#fff}.bg-gray-50{background:var(--gray-50)}.bg-gray-100{background:var(--gray-100)}.bg-gray-200{background:var(--gray-200)}.bg-gray-300{background:var(--gray-300)}
.rounded{border-radius:var(--radius)}.rounded-md{border-radius:6px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:20px}.rounded-full{border-radius:var(--radius-full)}
.shadow{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-none{box-shadow:none}
.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}
.border{border:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}
.divide-y>*+*{border-top:1px solid var(--border)}
.space-y-1>*+*{margin-top:4px}.space-y-2>*+*{margin-top:8px}.space-y-3>*+*{margin-top:12px}.space-y-4>*+*{margin-top:16px}
.space-x-1>*+*{margin-left:4px}.space-x-2>*+*{margin-left:8px}.space-x-3>*+*{margin-left:12px}.space-x-4>*+*{margin-left:16px}
.gap-0{gap:0}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.gap-8{gap:32px}
.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}.p-8{padding:32px}
.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:4px;padding-bottom:4px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.py-4{padding-top:16px;padding-bottom:16px}.py-6{padding-top:24px;padding-bottom:24px}.py-8{padding-top:32px;padding-bottom:32px}.py-10{padding-top:40px;padding-bottom:40px}
.px-0{padding-left:0;padding-right:0}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-5{padding-left:20px;padding-right:20px}.px-6{padding-left:24px;padding-right:24px}
.pt-0{padding-top:0}.pt-2{padding-top:8px}.pt-4{padding-top:16px}.pt-6{padding-top:24px}
.pb-0{padding-bottom:0}.pb-2{padding-bottom:8px}.pb-4{padding-bottom:16px}
.pl-0{padding-left:0}.pl-2{padding-left:8px}.pl-4{padding-left:16px}
.m-0{margin:0}.m-2{margin:8px}.m-4{margin:16px}
.mt-0{margin-top:0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mt-10{margin-top:40px}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mb-6{margin-bottom:24px}.mb-8{margin-bottom:32px}
.mr-0{margin-right:0}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:12px}
.ml-0{margin-left:0}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-auto{margin-left:auto}
.mx-auto{margin-left:auto;margin-right:auto}
.w-full{width:100%}.w-auto{width:auto}.w-1\/2{width:50%}.w-1\/3{width:33.333%}.w-2\/3{width:66.667%}.w-1\/4{width:25%}.w-3\/4{width:75%}
.h-auto{height:auto}.h-full{height:100%}.min-h-screen{min-height:100vh}
.max-w-full{max-width:100%}
.block{display:block}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.flex{display:flex}.grid{display:grid}.hidden{display:none}
.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}
.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-baseline{align-items:baseline}
.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}
.self-center{align-self:center}
.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}
.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.left-0{left:0}.right-0{right:0}.bottom-0{bottom:0}
.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}
.object-cover{object-fit:cover}.object-contain{object-fit:contain}.object-center{object-position:center}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-5{grid-template-columns:repeat(5,1fr)}
.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-full{grid-column:1/-1}
.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}
.whitespace-nowrap{white-space:nowrap}
.break-words{word-wrap:break-word;overflow-wrap:break-word}
.leading-tight{line-height:1.25}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}
.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}
.transition{transition:all .3s ease}.transition-all{transition:all .3s ease}
.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}
.pointer-events-none{pointer-events:none}.cursor-pointer{cursor:pointer}.select-none{user-select:none}
.list-none{list-style:none}.list-disc{list-style:disc;padding-left:24px}
.aspect-video{aspect-ratio:16/9}.aspect-square{aspect-ratio:1/1}
.appearance-none{-webkit-appearance:none;appearance:none}
.text-gray-300{color:var(--gray-300)}.text-gray-400{color:var(--gray-400)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:var(--gray-600)}.text-gray-700{color:var(--gray-700)}.text-gray-800{color:var(--gray-800)}.text-gray-900{color:var(--gray-900)}
.text-red-500{color:#E53E3E}.text-green-500{color:#48BB78}.text-blue-500{color:#4299E1}
.bg-red-50{background:#FFF5F5}.bg-green-50{background:var(--primary-50)}.bg-blue-50{background:#EBF8FF}.bg-yellow-50{background:#FFFFF0}
.clearfix::after{content:'';display:table;clear:both}
.float-left{float:left}.float-right{float:right}

/* ========== CARD NO-IMAGE PLACEHOLDER ========== */
.card-image-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-height:160px;
  background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%);
  color:var(--gray-400);
  gap:8px;
}
.card-image-placeholder i{font-size:2rem;opacity:.5}
.card-image-placeholder span{font-size:.72rem;font-weight:600;opacity:.6}
.card-no-image .card-image-wrap{background:var(--gray-100)}

/* ========== KOMENTAR INLINE SLIDER (below pagination) ========== */
.komentar-inline-card{
  background:#fff;
  border-radius:14px;
  border:1px solid var(--border);
  box-shadow:0 1px 4px rgba(0,0,0,.04);
  margin-top:20px;
  overflow:hidden;
  opacity:0;transform:translateY(20px);
  transition:all .5s cubic-bezier(.4,0,.2,1);
}
.komentar-inline-card.is-visible{opacity:1;transform:translateY(0)}
.komentar-inline-header{
  display:flex;align-items:center;gap:10px;
  padding:14px 18px;
  border-bottom:1px solid var(--border);
  background:var(--gray-50);
}
.komentar-inline-icon{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary);color:#fff;
  border-radius:8px;font-size:.72rem;
}
.komentar-inline-header h4{font-family:var(--font-heading);font-size:.88rem;font-weight:700;color:var(--dark);margin:0}
.komentar-inline-viewport{overflow:hidden}
.komentar-inline-track{padding:0;margin:0}
.komentar-inline-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 18px;
  border-bottom:1px solid var(--gray-100);
  text-decoration:none;
  transition:background .2s, opacity .3s, transform .3s;
}
.komentar-inline-hidden{display:none!important}
.komentar-inline-item:last-child{border-bottom:none}
.komentar-inline-item:hover{background:var(--primary-50)}
.komentar-inline-avatar{
  width:34px;height:34px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  border-radius:50%;font-size:.72rem;font-weight:700;
}
.komentar-inline-body{flex:1;min-width:0}
.komentar-inline-name{font-size:.78rem;font-weight:700;color:var(--dark);display:block}
.komentar-inline-text{font-size:.76rem;color:var(--text-muted);margin:3px 0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.komentar-inline-date{font-size:.68rem;color:var(--gray-400);display:inline-flex;align-items:center;gap:4px}
.komentar-inline-date i{font-size:.6rem}
/* Nav */
.komentar-inline-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 18px;
  border-top:1px solid var(--gray-100);
  background:var(--gray-50);
}
.komentar-inline-info{font-size:.7rem;color:var(--text-muted);font-weight:500}
.komentar-inline-nav-btns{display:flex;gap:6px}
.komentar-inline-btn{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border);
  background:#fff;color:var(--text-muted);
  border-radius:8px;cursor:pointer;
  font-size:.65rem;
  transition:all .2s;
}
.komentar-inline-btn:hover:not(:disabled){
  background:var(--primary);color:#fff;border-color:var(--primary);
}
.komentar-inline-btn:disabled{opacity:.4;cursor:not-allowed}

/* ========== RESPONSIVE ========== */
@media(min-width:640px){
  .article-grid{grid-template-columns:repeat(2,1fr)}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:flex-row{flex-direction:row}.sm\:hidden{display:none!important}
}
@media(min-width:768px){
  .article-grid{grid-template-columns:repeat(2,1fr)}
  .hero-boja{min-height:300px}
  .hero-title{font-size:3rem}
  .headline-hero{min-height:340px}
  .headline-hero-title{font-size:1.6rem}
  .headline-hero-excerpt{display:-webkit-box}
  .footer-columns{grid-template-columns:1.3fr 1fr 1fr}
  .pem-grid{grid-template-columns:repeat(3,1fr)}.galeri-grid{grid-template-columns:repeat(3,1fr)}
  .trio-row{grid-template-columns:1fr 1fr 1fr}
  .md\:flex{display:flex}.md\:block{display:block}.md\:hidden{display:none!important}
  .md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
  .md\:flex-row{flex-direction:row}.md\:gap-4{gap:16px}.md\:gap-6{gap:24px}
}
@media(min-width:1024px){
  .article-grid{grid-template-columns:repeat(3,1fr)}
  .hero-boja{min-height:320px}
  .hero-title{font-size:3.2rem}
  .headline-hero{min-height:380px}
  .headline-hero-title{font-size:1.8rem}
  .headline-hero-excerpt{font-size:14px;-webkit-line-clamp:2}
  .layout-main{flex-direction:row}.layout-main.layout-reversed{flex-direction:row-reverse}
  .layout-main.layout-sidebar-left .sidebar-area{order:-1}
  .content-area{flex:2;min-width:0}.sidebar-area{flex:0 0 300px;max-width:300px;width:300px}
  .navbar-menu{display:flex}.navbar-icons{display:flex}.navbar-toggle{display:none}
  .pem-grid{grid-template-columns:repeat(4,1fr)}.galeri-grid{grid-template-columns:repeat(4,1fr)}.lapak-grid{grid-template-columns:repeat(3,1fr)}.pembangunan-grid{grid-template-columns:repeat(2,1fr)}.pembangunan-detail-wrap{grid-template-columns:1.2fr 1fr}
  .trio-row{grid-template-columns:1fr 1fr 1fr;gap:24px}
  .lg\:hidden{display:none!important}.lg\:block{display:block!important}.lg\:flex{display:flex!important}.lg\:inline-block{display:inline-block!important}.lg\:inline-flex{display:inline-flex!important}.lg\:grid{display:grid!important}
  .lg\:w-1\/3{width:33.333%}.lg\:w-2\/3{width:66.667%}.lg\:w-3\/4{width:75%}.lg\:w-1\/4{width:25%}
  .lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}
  .lg\:gap-4{gap:16px}.lg\:gap-6{gap:24px}.lg\:gap-8{gap:32px}
  .lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}
  .lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}
  .lg\:mt-0{margin-top:0}.lg\:mb-0{margin-bottom:0}.lg\:p-4{padding:16px}.lg\:p-6{padding:24px}
}
@media(max-width:1023px){
  .hero-boja{min-height:260px}
  .hero-title{font-size:2.2rem}
  .hero-text{max-width:100%}
  .category-tabs{overflow-x:auto;flex-wrap:nowrap}
}
@media(max-width:767px){
  .hero-boja{min-height:220px}
  .hero-title{font-size:1.8rem}
  .hero-logo img{width:56px;height:56px}
  .hero-search{flex-direction:row;max-width:95%}
  .hero-search-btn{padding:10px 20px;font-size:13px}
  .headline-hero{min-height:220px}
  .headline-hero-content{padding:16px 18px}
  .headline-hero-title{font-size:1.1rem;-webkit-line-clamp:2}
  .headline-hero-excerpt{display:none}
  .headline-hero-meta{font-size:11px}
  .headline-hero-btn{padding:7px 16px;font-size:12px}
  .pag-boja{padding:12px 8px}
  .pag-info{font-size:11px}
  .pag-list a,.pag-list span{width:30px;height:30px;font-size:12px}
  .footer-bottom-inner{flex-direction:column;align-items:flex-start;gap:4px}
  .trio-row{grid-template-columns:1fr;gap:16px}
  .trio-card-body,.trio-map{min-height:250px}
  .aparatur-list{grid-template-columns:repeat(3,1fr);gap:8px}
  .aparatur-card-photo{width:64px;height:64px}
  .aparatur-section-header{padding:14px 16px;gap:10px}
  .aparatur-section-icon{width:36px;height:36px;font-size:.95rem}
  .aparatur-section-header h3{font-size:.88rem}
  .aparatur-card-info h4{font-size:.72rem}
  .aparatur-card-info span{font-size:.62rem;padding:2px 8px}
  .alamat-kantor{padding:18px 12px}
  .alamat-kantor-logo-ring{width:64px;height:64px}
  .alamat-kantor-logo{padding:5px}
  .alamat-kantor-title{font-size:.85rem}
  .ak-contact-grid{grid-template-columns:1fr;gap:6px}
  .ak-contact-card{padding:8px 10px;gap:8px}
  .ak-contact-icon{width:26px;height:26px;font-size:.58rem}
  .ak-contact-label{font-size:.58rem}
  .ak-contact-value{font-size:.72rem}
  .apbdesa-simple-table{font-size:.72rem}
  .apbdesa-simple-header h2{font-size:1rem}
  .agenda-komentar-row{grid-template-columns:1fr;gap:16px}
  .ak-card-header{padding:12px 14px;gap:10px}
  .ak-card-header-icon{width:34px;height:34px;font-size:14px}
  .ak-card-header-title{font-size:.88rem}
  .ak-card-header-sub{font-size:.68rem}
  .ak-agenda-tab{padding:8px 4px;font-size:.68rem}
  .ak-agenda-date{min-width:36px;width:36px}
  .ak-agenda-date-num{font-size:.9rem}
  .ak-komentar-avatar{width:32px;height:32px;font-size:.8rem}
  .ak-komentar-quote{padding:8px 10px 8px 26px}
  .ak-komentar-quote p{font-size:.78rem}
  .ak-komentar-meta{font-size:.68rem;gap:6px}
  .ak-komentar-link{margin-left:0;margin-top:4px;width:100%}
  .pem-grid{gap:14px}
  .pem-card-photo-wrap{padding:20px 16px 40px}
  .pem-card-photo-wrap img{width:74px;height:74px}
  .pem-name{font-size:.84rem}
  .pem-jabatan{font-size:.72rem}
  .pem-nip{font-size:.68rem}
  .sotk-chart-inner{padding:14px}
  .statis-body{padding:18px 20px}
  .statis-dokumen{margin:16px 20px}
  .statis-meta-footer{padding:12px 20px}
}
@media(max-width:639px){
  .article-grid{grid-template-columns:1fr;gap:16px}
  .card-image-wrap{height:180px}
  .pem-grid{grid-template-columns:repeat(2,1fr)}.galeri-grid{grid-template-columns:repeat(2,1fr)}.lapak-grid{grid-template-columns:1fr}
  .pem-card-photo-wrap{padding:18px 12px 36px}
  .pem-card-photo-wrap img{width:64px;height:64px;border-width:3px}
  .pem-card-body{padding:12px 10px 16px}
  .pem-name{font-size:.78rem}
  .pem-jabatan{font-size:.68rem}
  .pem-badge{font-size:.62rem;padding:2px 8px}
  .pem-socials{gap:4px}
  .pem-social-btn{width:26px;height:26px;font-size:.62rem}
  .statis-body{padding:16px}
  .statis-dokumen{margin:14px 16px;padding:12px 14px;flex-direction:column;gap:8px}
  .statis-meta-footer{padding:12px 16px;gap:10px;font-size:.72rem}
  .sotk-chart-card{border-radius:10px}
}
@media(min-width:1280px){
  .xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-5{grid-template-columns:repeat(5,1fr)}.xl\:flex{display:flex!important}.xl\:hidden{display:none!important}
}

/* ========== ANIMATIONS ========== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.animate-fadeInUp{animation:fadeInUp .5s ease-out forwards}
.animate-fadeIn{animation:fadeIn .3s ease-out forwards}
.animate-on-scroll{opacity:0;transform:translateY(20px);transition:all .5s ease}
.animate-on-scroll.animate-fadeInUp{opacity:1;transform:translateY(0)}

/* ========== WIDGET KEHADIRAN PERANGKAT ========== */
.kehadiran-box{
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-md);
  background:var(--white);
  border:none;
  margin-bottom:20px;
}
.kehadiran-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(135deg,var(--primary-darker),var(--primary-dark));
  padding:14px 16px;
  border-bottom:none;
}
.kehadiran-header .box-title{
  color:#fff;
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:700;
  margin:0;
  display:flex;
  align-items:center;
  gap:6px;
}
.kehadiran-login-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;height:34px;
  border-radius:var(--radius-full);
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:15px;
  transition:all var(--transition);
  border:1.5px solid rgba(255,255,255,.25);
}
.kehadiran-login-btn:hover{
  background:var(--accent);
  color:var(--primary-darker);
  border-color:var(--accent);
  transform:scale(1.1);
  box-shadow:0 2px 10px rgba(96,165,250,.4);
}
.kehadiran-body{
  padding:12px;
  max-height:440px;
  overflow-y:auto;
}
.kehadiran-body::-webkit-scrollbar{width:4px}
.kehadiran-body::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}
.kehadiran-body::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:4px}
.kehadiran-body::-webkit-scrollbar-thumb:hover{background:var(--primary-soft)}

.kehadiran-list{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.kehadiran-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:var(--radius);
  transition:all var(--transition);
  cursor:default;
  animation:fadeInUp .4s ease-out both;
}
.kehadiran-item:nth-child(1){animation-delay:.05s}
.kehadiran-item:nth-child(2){animation-delay:.1s}
.kehadiran-item:nth-child(3){animation-delay:.15s}
.kehadiran-item:nth-child(4){animation-delay:.2s}
.kehadiran-item:nth-child(5){animation-delay:.25s}
.kehadiran-item:nth-child(6){animation-delay:.3s}
.kehadiran-item:nth-child(7){animation-delay:.35s}
.kehadiran-item:nth-child(8){animation-delay:.4s}
.kehadiran-item:hover{
  background:var(--primary-50);
}

/* Avatar with status dot */
.kehadiran-avatar-wrap{
  position:relative;
  flex-shrink:0;
}
.kehadiran-avatar{
  width:40px;height:40px;
  border-radius:var(--radius-full);
  object-fit:cover;
  border:2px solid var(--gray-200);
  background:var(--gray-100);
}
.kehadiran-dot{
  position:absolute;
  bottom:0;right:0;
  width:13px;height:13px;
  border-radius:var(--radius-full);
  border:2px solid var(--white);
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}
.kehadiran-dot.status-hadir{background:#3B82F6}
.kehadiran-dot.status-izin{background:#F59E0B}
.kehadiran-dot.status-belum{background:#94A3B8}
.kehadiran-dot.status-libur{background:#A78BFA}

/* Info text */
.kehadiran-info{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.kehadiran-nama{
  font-size:.82rem;
  font-weight:600;
  color:var(--text-heading);
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.kehadiran-jabatan{
  font-size:.72rem;
  color:var(--text-muted);
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Status badge (with text) */
.kehadiran-status-col{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  flex-shrink:0;
}
.kehadiran-badge{
  flex-shrink:0;
  padding:3px 10px;
  border-radius:var(--radius-full);
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  font-weight:600;
  line-height:1;
}
.kehadiran-badge .badge-text{
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.02em;
}
.kehadiran-badge.badge-hadir{
  background:rgba(34,197,94,.12);
  color:#2563EB;
}
.kehadiran-badge.badge-izin{
  background:rgba(245,158,11,.12);
  color:#D97706;
}
.kehadiran-badge.badge-belum{
  background:rgba(148,163,184,.12);
  color:#64748B;
}
.kehadiran-badge.badge-libur{
  background:rgba(167,139,250,.12);
  color:#7C3AED;
}
/* Jam masuk */
.kehadiran-jam{
  font-size:.65rem;
  font-weight:600;
  color:#2563EB;
  display:inline-flex;
  align-items:center;
  gap:3px;
  opacity:.8;
}
.kehadiran-jam i{
  font-size:.55rem;
}

/* Row background tint per status */
.kehadiran-panel-item.status-row-hadir{
  background:rgba(34,197,94,.04);
  border-left:3px solid #3B82F6;
}
.kehadiran-panel-item.status-row-hadir:hover{
  background:rgba(34,197,94,.08);
}
.kehadiran-panel-item.status-row-izin{
  background:rgba(245,158,11,.04);
  border-left:3px solid #F59E0B;
}
.kehadiran-panel-item.status-row-izin:hover{
  background:rgba(245,158,11,.08);
}
.kehadiran-panel-item.status-row-belum{
  background:transparent;
  border-left:3px solid transparent;
}
.kehadiran-panel-item.status-row-belum:hover{
  background:var(--primary-50);
}
.kehadiran-panel-item.status-row-libur{
  background:rgba(167,139,250,.04);
  border-left:3px solid #A78BFA;
}
.kehadiran-panel-item.status-row-libur:hover{
  background:rgba(167,139,250,.08);
}

/* Avatar border matches status */
.status-row-hadir .kehadiran-avatar{
  border-color:#86EFAC;
}
.status-row-izin .kehadiran-avatar{
  border-color:#FDE68A;
}
.status-row-libur .kehadiran-avatar{
  border-color:#C4B5FD;
}

/* ========== SECTION: INFO DESA (Kehadiran + Statistik) ========== */
.section-info-desa{
  background:linear-gradient(180deg,#FEFCF3 0%,var(--primary-50) 50%,#fff 100%);
  padding:56px 0 48px;
}
.info-desa-row{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:28px;
  align-items:start;
}

/* â”€â”€ Kehadiran Panel (Left) â”€â”€ */
.kehadiran-panel{
  background:#fff;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
  opacity:0;
  transform:translateX(-30px);
  transition:all .6s cubic-bezier(.4,0,.2,1);
}
.kehadiran-panel.is-visible{
  opacity:1;
  transform:translateX(0);
}
.kehadiran-panel-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.kehadiran-panel-header::after{display:none}
.kehadiran-panel-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--primary-50);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex-shrink:0;
  color:var(--primary);
}
.kehadiran-panel-header h3{
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  margin:0;
  color:var(--text-heading);
}
.kehadiran-panel-header p{
  font-size:.72rem;
  color:var(--text-muted);
  margin:0;
}
.kehadiran-panel-login{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
  border-radius:50%;
  background:var(--primary-50);
  color:var(--primary);
  font-size:14px;
  margin-left:auto;
  transition:all .3s;
  border:1px solid var(--border);
  flex-shrink:0;
  position:relative;
  z-index:2;
  cursor:pointer;
}
.kehadiran-panel-login:hover{
  background:var(--accent);
  color:var(--dark);
  border-color:var(--accent);
  transform:rotate(10deg) scale(1.1);
  box-shadow:0 4px 16px rgba(96,165,250,.4);
}

/* Summary counters */
.kehadiran-summary{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:0;
  padding:0;
  border-bottom:1px solid rgba(var(--primary-rgb),.06);
}
.kehadiran-summary-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:14px 8px;
  position:relative;
}
.kehadiran-summary-item + .kehadiran-summary-item{
  border-left:1px solid rgba(var(--primary-rgb),.06);
}
.summary-num{
  font-family:var(--font-heading);
  font-size:1.4rem;
  font-weight:800;
  line-height:1;
  margin-bottom:2px;
}
.summary-label{
  font-size:.68rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.summary-hadir .summary-num{color:#2563EB}
.summary-hadir .summary-label{color:#3B82F6}
.summary-izin .summary-num{color:#D97706}
.summary-izin .summary-label{color:#F59E0B}
.summary-belum .summary-num{color:#64748B}
.summary-belum .summary-label{color:#94A3B8}

/* Kehadiran list in panel */
.kehadiran-panel-body{
  padding:6px 10px 10px;
  max-height:580px;
  overflow-y:auto;
}
.kehadiran-panel-body::-webkit-scrollbar{width:3px}
.kehadiran-panel-body::-webkit-scrollbar-track{background:transparent}
.kehadiran-panel-body::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:3px}
.kehadiran-panel-list{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.kehadiran-panel-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:12px;
  transition:all .25s;
  cursor:default;
  opacity:0;
  transform:translateY(12px);
  transition:background .2s, opacity .5s ease, transform .5s ease;
}
.kehadiran-panel-item.item-visible{
  opacity:1;
  transform:translateY(0);
}
.kehadiran-panel-item:hover{
  background:var(--primary-50);
}
.kehadiran-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:40px 16px;
  gap:10px;
  color:var(--text-muted);
}
.kehadiran-empty i{font-size:2rem;opacity:.3}
.kehadiran-empty p{font-size:.85rem;margin:0}

/* â”€â”€ Jam Kerja Panel (di bawah Kehadiran) â”€â”€ */
.jamkerja-panel{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
  margin-top:20px;
  opacity:0;
  transform:translateX(-30px);
  transition:all .6s cubic-bezier(.4,0,.2,1) .2s;
}
.jamkerja-panel.is-visible{
  opacity:1;
  transform:translateX(0);
}
.jamkerja-panel-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.jamkerja-panel-header::after{display:none}
.jamkerja-panel-icon{
  width:40px;height:40px;
  background:var(--primary-50);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  color:var(--primary);
}
.jamkerja-panel-header h3{
  font-family:var(--font-heading);
  font-size:.92rem;font-weight:700;
  margin:0;line-height:1.3;
  color:var(--text-heading);
}
.jamkerja-panel-header p{
  font-size:.72rem;margin:2px 0 0;line-height:1.3;
  color:var(--text-muted);
}

/* â”€â”€ Jam Kerja Table â”€â”€ */
.jamkerja-panel-body{padding:0}
.jamkerja-table{
  width:100%;
  border-collapse:collapse;
  font-size:.82rem;
}
.jamkerja-table thead th{
  background:var(--gray-50);
  padding:10px 16px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  color:var(--text-muted);
  border-bottom:2px solid var(--gray-200);
  text-align:left;
}
.jamkerja-table thead th:first-child{width:35%}
.jamkerja-table tbody tr{
  border-bottom:1px solid var(--gray-100);
  transition:background .2s;
}
.jamkerja-table tbody tr:last-child{border-bottom:none}
.jamkerja-table tbody tr:hover{background:var(--gray-50)}
.jamkerja-table tbody td{
  padding:10px 16px;
  color:var(--text-body);
  font-weight:500;
  vertical-align:middle;
}

/* Today highlight */
.jamkerja-today{
  background:rgba(var(--primary-rgb),.04)!important;
}
.jamkerja-today td{
  color:var(--primary)!important;
  font-weight:700!important;
}
.jamkerja-today-dot{
  display:inline-block;
  width:7px;height:7px;
  background:var(--primary);
  border-radius:50%;
  margin-right:6px;
  animation:visitorPulse 1.5s ease-in-out infinite;
  vertical-align:middle;
}

/* Libur row */
.jamkerja-libur{
  background:rgba(220,38,38,.02);
}
.jamkerja-libur td{
  color:var(--text-muted)!important;
  font-style:italic;
}
.jamkerja-badge-libur{
  display:inline-block;
  padding:3px 12px;
  background:linear-gradient(135deg,#fee2e2,#fecaca);
  color:#dc2626;
  font-size:.7rem;
  font-weight:700;
  border-radius:20px;
  text-transform:uppercase;
  letter-spacing:.3px;
}

/* Responsive */
@media(max-width:767px){
  .jamkerja-panel-header{padding:14px 16px}
  .jamkerja-panel-icon{width:36px;height:36px;font-size:1rem;border-radius:12px}
  .jamkerja-table{font-size:.78rem}
  .jamkerja-table thead th,
  .jamkerja-table tbody td{padding:8px 12px}
}

/* ── Info Map Card (Peta Wilayah & Lokasi Kantor di info-desa-right) ── */

.info-map-card{

  background:var(--white);

  border-radius:20px;

  overflow:hidden;

  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);

  border:1px solid rgba(var(--primary-rgb),.08);

  opacity:0;

  transform:translateX(30px);

  transition:all .6s cubic-bezier(.4,0,.2,1) .15s;

}

.info-map-card.is-visible{

  opacity:1;

  transform:translateX(0);

}

.info-map-card + .info-map-card{

  margin-top:20px;

}

.info-map-card-header{

  display:flex;

  align-items:center;

  gap:12px;

  padding:16px 20px;

  background:var(--white);

  border-bottom:1px solid var(--border);

  border-left:4px solid var(--primary);

  color:var(--text-heading);

  position:relative;

}

.info-map-card-header::after{display:none}

.info-map-card-icon{

  width:40px;height:40px;

  background:var(--primary-50);

  border-radius:10px;

  display:flex;align-items:center;justify-content:center;

  font-size:1rem;flex-shrink:0;

  color:var(--primary);

}

.info-map-card-text{flex:1;min-width:0}

.info-map-card-text h3{

  font-family:var(--font-heading);

  font-size:.92rem;font-weight:700;

  margin:0;line-height:1.3;

  color:var(--text-heading);

}

.info-map-card-text p{

  font-size:.72rem;

  color:var(--text-muted);

  margin:2px 0 0;line-height:1.3;

}

.info-map-card-link{

  margin-left:auto;

  font-size:.72rem;font-weight:600;

  color:var(--primary);

  text-decoration:none;

  display:flex;align-items:center;gap:4px;

  white-space:nowrap;

  transition:all .2s;

}

.info-map-card-link:hover{color:var(--primary-dark);gap:6px}

.info-map-card-link i{font-size:.6rem;transition:transform .2s}

.info-map-card-link:hover i{transform:translateX(2px)}

.info-map-card-body{

  position:relative;

  min-height:320px;

}

.info-map-leaflet{

  width:100%;

  height:100%;

  min-height:320px;

}

.info-map-empty{

  display:flex;

  flex-direction:column;

  align-items:center;

  justify-content:center;

  height:100%;

  min-height:320px;

  color:var(--text-muted);

  gap:12px;

}

.info-map-empty i{font-size:2.5rem;opacity:.3}

.info-map-empty p{font-size:.85rem}



@media(max-width:991px){

  .info-map-card-body{min-height:260px}

  .info-map-leaflet{min-height:260px}

  .info-map-empty{min-height:260px}

}

@media(max-width:767px){

  .info-map-card-header{padding:14px 16px}

  .info-map-card-icon{width:36px;height:36px;font-size:.9rem;border-radius:10px}

  .info-map-card-body{min-height:220px}

  .info-map-leaflet{min-height:220px}

  .info-map-empty{min-height:220px}

  .info-map-card-link{font-size:.68rem}

}




/* -- Info Agenda Card (Agenda di info-desa-right, sejajar grid) -- */
.info-agenda-card{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
}
.info-agenda-card .info-map-card-header{
  border-left:4px solid var(--primary);
}
.info-agenda-viewport{
  overflow:hidden;
  padding:0;
}
.info-agenda-track{
  display:flex;
  flex-direction:column;
}

/* =============================================
   SECTION: GALERI DESA (full-width above info-desa)
   ============================================= */
.section-galeri-desa{
  background:linear-gradient(180deg,#fff 0%,var(--primary-50) 50%,#FEFCF3 100%);
  padding:56px 0 48px;
}

.galeri-desa-wrap{
  background:var(--white);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.08);
  opacity:0;
  transform:translateY(30px);
  transition:all .6s cubic-bezier(.4,0,.2,1);
}
.galeri-desa-wrap.is-visible{
  opacity:1;
  transform:translateY(0);
}

.galeri-desa-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  padding:16px;
}
.galeri-desa-slide{
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10;
  background:#f1f5f9;
  border-radius:12px;
  width:100%;
}
.galeri-desa-slide img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.galeri-desa-slide:hover img{
  transform:scale(1.05);
}
.galeri-desa-overlay{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:32px 14px 12px;
  background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 100%);
  pointer-events:none;
}
.galeri-desa-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.82rem;font-weight:600;
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.4);
  display:flex;align-items:center;gap:6px;
}
.galeri-desa-title i{font-size:.72rem;opacity:.8}

/* Footer */
.galeri-desa-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;
  border-top:1px solid var(--border);
}
.galeri-desa-count{
  font-size:.78rem;
  color:var(--text-muted);
  font-weight:500;
  display:flex;align-items:center;gap:5px;
}
.galeri-desa-count i{color:var(--primary);font-size:.68rem}
.galeri-desa-viewall{
  font-size:.78rem;
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  display:flex;align-items:center;gap:4px;
  transition:all .2s;
}
.galeri-desa-viewall:hover{
  color:var(--primary-dark);
  gap:6px;
}
.galeri-desa-viewall i{font-size:.62rem;transition:transform .2s}
.galeri-desa-viewall:hover i{transform:translateX(2px)}

/* Responsive Galeri Desa */
@media(max-width:767px){
  .section-galeri-desa{padding:40px 0 32px}
  .galeri-desa-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:12px}
  .galeri-desa-slide{border-radius:8px}
  .galeri-desa-footer{padding:10px 16px}
}
@media(max-width:575px){
  .section-galeri-desa{padding:32px 0 24px}
  .galeri-desa-grid{grid-template-columns:1fr;gap:10px;padding:10px}
  .galeri-desa-footer{flex-direction:column;gap:8px;text-align:center}
}

/* -- Sinergi Program FA Icon Fallback -- */
.wsinergi-fa-icon{
  font-size:1.4rem;
  color:var(--primary);
  opacity:.7;
  transition:all .2s;
}
.wsinergi-item:hover .wsinergi-fa-icon{
  color:var(--primary-dark);
  opacity:1;
  transform:scale(1.1);
}
/* â”€â”€ Statistik Panel (Right) â”€â”€ */
.statistik-panel{
  opacity:0;
  transform:translateX(30px);
  transition:all .6s cubic-bezier(.4,0,.2,1) .15s;
}
.statistik-panel.is-visible{
  opacity:1;
  transform:translateX(0);
}

.statistik-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin-bottom:20px;
}
.statistik-card{
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px 18px;
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.04);
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  text-decoration:none;
  color:var(--text-heading);
  overflow:hidden;
  opacity:0;
  transform:translateY(20px) scale(.97);
  transition:all .45s cubic-bezier(.4,0,.2,1);
}
.statistik-card.card-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}
.statistik-card:hover{
  box-shadow:0 8px 32px rgba(0,0,0,.1);
  transform:translateY(-4px) scale(1.02)!important;
  border-color:var(--card-color,.2);
}
.statistik-card-glow{
  position:absolute;
  top:-50%;
  right:-50%;
  width:120px;height:120px;
  background:radial-gradient(circle,var(--card-bg) 0%,transparent 70%);
  opacity:.7;
  transition:all .4s;
  pointer-events:none;
}
.statistik-card:hover .statistik-card-glow{
  opacity:1;
  transform:scale(1.5);
}
.statistik-card-icon{
  width:52px;height:52px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  flex-shrink:0;
  transition:all .3s;
}
.statistik-card:hover .statistik-card-icon{
  transform:scale(1.1) rotate(-5deg);
  box-shadow:0 4px 16px rgba(0,0,0,.1);
}
.statistik-card-info{
  flex:1;
  min-width:0;
}
.statistik-card-info h4{
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:700;
  margin:0 0 4px;
  color:var(--text-heading);
  line-height:1.3;
  transition:color .2s;
}
.statistik-card:hover .statistik-card-info h4{
  color:var(--card-color);
}
.statistik-card-link{
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  display:inline-flex;
  align-items:center;
  gap:4px;
  transition:all .2s;
}
.statistik-card-link i{
  font-size:.6rem;
  transition:transform .2s;
}
.statistik-card:hover .statistik-card-link{
  color:var(--card-color);
}
.statistik-card:hover .statistik-card-link i{
  transform:translateX(3px);
}

/* Statistik Footer */
.statistik-footer{
  display:flex;
  align-items:center;
  gap:12px;
  justify-content:center;
  padding-top:4px;
}
.statistik-footer-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 22px;
  border-radius:50px;
  font-size:.8rem;
  font-weight:700;
  text-decoration:none;
  transition:all .3s;
  white-space:nowrap;
}
.statistik-footer-btn i{font-size:.85rem}
.statistik-footer-btn.btn-primary-gradient{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  box-shadow:0 3px 14px rgba(var(--primary-rgb),.25);
}
.statistik-footer-btn.btn-primary-gradient:hover{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary-darker));
  box-shadow:0 6px 22px rgba(var(--primary-rgb),.35);
  transform:translateY(-2px);
}
.statistik-footer-btn.btn-accent-gradient{
  background:linear-gradient(135deg,var(--primary-soft),var(--primary));
  color:#fff;
  box-shadow:0 3px 14px rgba(var(--primary-rgb),.2);
}
.statistik-footer-btn.btn-accent-gradient:hover{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  box-shadow:0 6px 22px rgba(var(--primary-rgb),.3);
  transform:translateY(-2px);
}

/* Kehadiran "more" indicator */
.kehadiran-more{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  border-top:1px dashed rgba(var(--primary-rgb),.1);
  margin-top:4px;
}

/* â”€â”€ Penduduk Counter â”€â”€ */
.penduduk-counter{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:24px;
}
.penduduk-counter-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px 18px;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.04);
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  opacity:0;
  transform:translateY(16px);
  transition:all .5s cubic-bezier(.4,0,.2,1);
}
.penduduk-counter.counter-animated .penduduk-counter-item{
  opacity:1;
  transform:translateY(0);
}
.penduduk-counter-item:nth-child(1){transition-delay:.05s}
.penduduk-counter-item:nth-child(2){transition-delay:.15s}
.penduduk-counter-item:nth-child(3){transition-delay:.25s}

.penduduk-counter-item::after{
  content:'';
  position:absolute;
  bottom:0;left:0;right:0;
  height:3px;
  border-radius:0 0 16px 16px;
}
.counter-total::after{background:linear-gradient(90deg,var(--primary),var(--primary-soft))}
.counter-laki::after{background:linear-gradient(90deg,#3182CE,#63B3ED)}
.counter-perempuan::after{background:linear-gradient(90deg,#D53F8C,#F687B3)}

.penduduk-counter-item:hover{
  box-shadow:0 6px 24px rgba(0,0,0,.08);
  transform:translateY(-3px)!important;
}
.penduduk-counter-icon{
  width:48px;height:48px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  flex-shrink:0;
  transition:all .3s;
}
.counter-total .penduduk-counter-icon{
  background:var(--primary-50);color:var(--primary);
}
.counter-laki .penduduk-counter-icon{
  background:#EBF8FF;color:#3182CE;
}
.counter-perempuan .penduduk-counter-icon{
  background:#FFF5F7;color:#D53F8C;
}
.penduduk-counter-item:hover .penduduk-counter-icon{
  transform:scale(1.1) rotate(-5deg);
}
.penduduk-counter-data{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.penduduk-counter-num{
  font-family:var(--font-heading);
  font-size:1.6rem;
  font-weight:800;
  line-height:1.1;
  color:var(--text-heading);
}
.counter-total .penduduk-counter-num{color:var(--primary)}
.counter-laki .penduduk-counter-num{color:#3182CE}
.counter-perempuan .penduduk-counter-num{color:#D53F8C}
.penduduk-counter-label{
  font-size:.72rem;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-top:2px;
}

/* â”€â”€ Responsive Info Desa â”€â”€ */
@media(max-width:1023px){
  .info-desa-row{
    grid-template-columns:1fr;
    gap:24px;
  }
  .penduduk-counter{
    grid-template-columns:repeat(3,1fr);
  }
  .statistik-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:639px){
  .penduduk-counter{
    grid-template-columns:1fr;
    gap:10px;
  }
  .statistik-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .statistik-card{
    padding:16px 14px;
  }
  .kehadiran-summary .summary-num{
    font-size:1.1rem;
  }
  .penduduk-counter-item{
    padding:16px 14px;
  }
  .penduduk-counter-num{
    font-size:1.3rem;
  }
  .statistik-footer{
    flex-direction:column;
    gap:10px;
  }
  .statistik-footer-btn{
    width:100%;
    justify-content:center;
  }
  .pengunjung-stat-num{
    font-size:1.1rem;
  }
  .pengunjung-stat-num.pengunjung-total{
    font-size:1.2rem;
  }
}

/* ========================================================
   SECTION: Quick Access (Menu + Layanan Mandiri + Jadwal Sholat)
   ======================================================== */
.section-quick-access{
  padding:33px 0 13px;
  background:var(--warm-section);
  position:relative;
  overflow:hidden;
}
.section-quick-access::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,var(--primary),var(--accent),var(--primary));
}
.quick-access-grid{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:20px;
  align-items:stretch;
  overflow:hidden;
}
.qa-right-wrap{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0; /* prevent grid blowout */
  height:100%;
}
.qa-right-col{
  min-width:0; /* critical: prevents 1fr grid column overflow */
  overflow:hidden;
}
/* Left column: stretch menu card to full height */
.qa-menu-col{
  display:flex;
  flex-direction:column;
}
.qa-menu-card{
  flex:1;
}
.qa-menu-card .qa-menu-grid{
  flex:1;
}

/* â”€â”€ QA Card (shared) â”€â”€ */
.qa-card{
  background:var(--white);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-md);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .5s ease, transform .5s ease;
}
.qa-card.qa-visible{
  opacity:1;
  transform:translateY(0);
}
.qa-card-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px 10px;
  border-bottom:1px solid var(--border);
}
.qa-card-header i{
  font-size:1rem;
  color:var(--primary);
  width:24px;
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--primary-50);
  border-radius:6px;
}
.qa-card-header h3{
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:700;
  color:var(--text-heading);
  margin:0;
  flex:1;
}

/* â”€â”€ Menu Grid â”€â”€ */
.qa-menu-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  padding:6px;
  flex:1;
}
.qa-menu-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:10px 6px;
  border-radius:var(--radius-lg);
  text-decoration:none;
  color:var(--text-body);
  transition:all .25s ease;
  position:relative;
  overflow:hidden;
}
.qa-menu-item::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--primary-50),var(--sky));
  opacity:0;
  transition:opacity .25s ease;
}
.qa-menu-item:hover::before{
  opacity:1;
}
.qa-menu-item:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(var(--primary-rgb),.12);
}
.qa-menu-icon{width:42px;height:42px;border-radius:var(--radius);background:var(--primary-50);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--primary);transition:all .2s}
.qa-menu-icon i{
  font-size:16px;
  color:inherit;
  position:relative;
  z-index:2;
}
.qa-menu-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:inherit;
  transition:transform .25s ease;
}
.qa-menu-item:hover .qa-menu-icon{background:var(--primary);color:#fff}
.qa-menu-item:hover .qa-menu-icon img{
  transform:scale(1.02);
}
.qa-menu-item:hover .qa-menu-icon i{
  box-shadow:0 5px 16px rgba(var(--primary-rgb),.35);
}
.qa-menu-item span{
  font-size:.7rem;
  font-weight:600;
  text-align:center;
  line-height:1.2;
  position:relative;
  z-index:1;
  color:var(--text-heading);
}

/* â”€â”€ Quick Access Info Ticker (Elegan Glass Mirror) â”€â”€ */
.qa-ticker{
  display:flex;
  align-items:center;
  gap:0;
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 50%,var(--primary-dark) 100%);
  border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius-lg);
  overflow:hidden;
  flex-shrink:0;
  position:relative;
  box-shadow:0 2px 12px rgba(31,111,80,.18),inset 0 1px 0 rgba(255,255,255,.12);
  width:100%;
  max-width:100%;
  min-width:0;
}
/* Glass mirror shine overlay */
.qa-ticker::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.03) 100%);
  pointer-events:none;
  z-index:1;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
/* Subtle shimmer sweep */
.qa-ticker::after{
  content:'';
  position:absolute;
  top:0;bottom:0;
  width:60px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);
  animation:qaTickerShimmer 4s ease-in-out infinite;
  pointer-events:none;
  z-index:2;
}
@keyframes qaTickerShimmer{
  0%{left:-60px}
  100%{left:calc(100% + 60px)}
}
.qa-ticker-badge{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:9px 16px;
  background:linear-gradient(135deg,var(--accent) 0%,#c9a020 100%);
  color:var(--primary-darker);
  font-size:.72rem;
  font-weight:800;
  font-family:var(--font-heading);
  letter-spacing:.04em;
  white-space:nowrap;
  text-transform:uppercase;
  position:relative;
  z-index:3;
  box-shadow:2px 0 8px rgba(0,0,0,.15);
  border-radius:var(--radius-lg) 0 0 var(--radius-lg);
}
.qa-ticker-badge i{font-size:.7rem}
.qa-ticker-track-wrap{
  flex:1;
  overflow:hidden;
  position:relative;
  min-width:0;
  padding:9px 16px 9px 14px;
  z-index:3;
  /* Fade edges for smooth scroll entry/exit */
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 5%,#000 95%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 5%,#000 95%,transparent 100%);
}
.qa-ticker-track{
  display:inline-flex;
  white-space:nowrap;
  animation:qaTickerScroll 22s linear infinite;
  will-change:transform;
}
.qa-ticker-track:hover{
  animation-play-state:paused;
}
.qa-ticker-item{
  margin-right:50px;
  font-size:.78rem;
  color:rgba(255,255,255,.92);
  line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.15);
}
.qa-ticker-item a{
  color:var(--accent);
  font-weight:700;
  margin-left:4px;
  text-decoration:none;
  text-shadow:none;
}
.qa-ticker-item a:hover{
  text-decoration:underline;
  color:#e8c84a;
}
@keyframes qaTickerScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

/* â”€â”€ Layanan Mandiri (Image Banner) â”€â”€ */
.qa-layanan-card{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--radius-lg);
  transition:all .3s ease;
  flex:1;
  min-height:0;
  background:none;
  box-shadow:none;
  line-height:0;
  border:none;
  padding:0;
}
.qa-layanan-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(31,111,80,.15);
}
.qa-layanan-img{
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  display:block;
  border-radius:var(--radius-lg);
}
/* CTA Button overlay */
.qa-layanan-btn{
  position:absolute;
  bottom:18%;
  left:50%;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 28px 10px 22px;
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 40%,var(--accent-dark) 100%);
  color:#fff;
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.02em;
  text-decoration:none;
  border-radius:50px;
  border:2px solid rgba(255,255,255,.3);
  box-shadow:0 4px 18px rgba(var(--primary-dark-rgb),.35),inset 0 1px 0 rgba(255,255,255,.2);
  white-space:nowrap;
  line-height:1;
  transition:all .3s ease;
  z-index:4;
}
.qa-layanan-btn::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 100%);
  border-radius:50px 50px 0 0;
  pointer-events:none;
}
.qa-layanan-btn i{
  font-size:.78rem;
  position:relative;
}
.qa-layanan-btn-arrow{
  font-size:.68rem!important;
  opacity:.8;
  transition:transform .25s ease;
}
.qa-layanan-btn:hover{
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary) 40%,var(--accent) 100%);
  box-shadow:0 6px 24px rgba(var(--primary-dark-rgb),.45),inset 0 1px 0 rgba(255,255,255,.25);
  color:#fff;
  transform:translateX(-50%) translateY(-2px);
}
.qa-layanan-btn:hover .qa-layanan-btn-arrow{
  transform:translateX(3px);
}
/* When ticker is hidden, let image show fully without cropping */
.qa-right-wrap .qa-layanan-card:only-child{
  flex:none;
  height:auto;
}
.qa-right-wrap .qa-layanan-card:only-child .qa-layanan-img{
  height:auto;
  object-fit:contain;
}

/* â”€â”€ Jadwal Sholat Bar (Elegant Animated) â”€â”€ */
.qa-sholat-bar{
  background:linear-gradient(135deg,var(--white) 0%,rgba(47,133,90,.03) 100%);
  border-radius:var(--radius-xl);
  box-shadow:0 4px 24px rgba(47,133,90,.08),0 1px 3px rgba(0,0,0,.04);
  padding:0;
  border:1px solid rgba(47,133,90,.1);
  overflow:hidden;
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);
}
.qa-sholat-bar.qa-sholat-loaded,
.qa-sholat-bar.qa-visible{
  opacity:1;
  transform:translateY(0);
}

/* Header */
.qa-sholat-bar-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 16px;
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary-dark) 50%,var(--primary) 100%);
  position:relative;
  overflow:hidden;
}
.qa-sholat-bar-header::before{
  content:'';
  position:absolute;
  top:-20px;right:-20px;
  width:80px;height:80px;
  background:radial-gradient(circle,rgba(96,165,250,.15) 0%,transparent 70%);
  border-radius:50%;
  pointer-events:none;
}
.qa-sholat-bar-header::after{
  content:'';
  position:absolute;
  bottom:-10px;left:30%;
  width:60px;height:60px;
  background:radial-gradient(circle,rgba(255,255,255,.06) 0%,transparent 70%);
  border-radius:50%;
  pointer-events:none;
}
.qa-sholat-header-left{
  display:flex;
  align-items:center;
  gap:10px;
  position:relative;
  z-index:2;
}
.qa-sholat-icon-wrap{
  width:30px;height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.15);
  border-radius:10px;
  flex-shrink:0;
  backdrop-filter:blur(4px);
}
.qa-sholat-icon-wrap i{
  color:#fff;
  font-size:.85rem;
}
.qa-sholat-header-text{
  display:flex;
  flex-direction:column;
  gap:1px;
}
.qa-sholat-bar-title{
  font-family:var(--font-heading);
  font-size:.78rem;
  font-weight:700;
  color:#fff;
  line-height:1.2;
}
.qa-sholat-bar-date{
  font-size:.6rem;
  color:rgba(255,255,255,.65);
  line-height:1.2;
}

/* Countdown badge */
.qa-sholat-countdown{
  display:flex;
  align-items:center;
  gap:6px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.15);
  border-radius:20px;
  padding:4px 12px 4px 8px;
  backdrop-filter:blur(4px);
  position:relative;
  z-index:2;
}
.qa-sholat-countdown i{
  font-size:.6rem;
  color:var(--accent);
  animation:sholatBellSwing 2s ease-in-out infinite;
}
@keyframes sholatBellSwing{
  0%,100%{transform:rotate(0deg)}
  15%{transform:rotate(12deg)}
  30%{transform:rotate(-10deg)}
  45%{transform:rotate(8deg)}
  60%{transform:rotate(-5deg)}
  75%{transform:rotate(3deg)}
}
.qa-sholat-countdown span{
  font-family:var(--font-heading);
  font-size:.62rem;
  font-weight:600;
  color:#fff;
  white-space:nowrap;
}
.qa-sholat-countdown-active{
  background:rgba(96,165,250,.25);
  border-color:rgba(96,165,250,.4);
}
.qa-sholat-countdown-active i{
  color:var(--accent);
  animation:sholatBellRing .5s ease-in-out infinite;
}
@keyframes sholatBellRing{
  0%,100%{transform:rotate(0)}
  25%{transform:rotate(15deg)}
  75%{transform:rotate(-15deg)}
}

/* Prayer time items */
.qa-sholat-bar-times{
  display:flex;
  gap:6px;
  padding:8px 12px;
}
.qa-sholat-bar-item{
  flex:1;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  text-align:center;  
  gap:8px;
  padding:6px 10px;
  border-radius:12px;
  background:var(--gray-50);
  border:1.5px solid var(--border);
  transition:all .35s cubic-bezier(.4,0,.2,1);
  position:relative;
  overflow:hidden;
  /* Staggered entry: start hidden */
  opacity:0;
  transform:translateY(12px) scale(.95);
}
.qa-sholat-bar-item.qa-sbar-revealed{
  opacity:1;
  transform:translateY(0) scale(1);
}

/* Icon per waktu */
.qa-sbar-icon{
  width:28px;height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:linear-gradient(135deg,var(--primary-50),rgba(47,133,90,.08));
  transition:all .35s ease;
  flex-shrink:0;
}
.qa-sbar-icon i{
  font-size:.62rem;
  color:var(--primary);
  transition:all .35s ease;
}

/* Text group beside icon */
.qa-sbar-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  min-width:0;
}

/* Hover effect */
.qa-sholat-bar-item:hover{
  background:var(--primary-50);
  border-color:var(--primary-light);
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(47,133,90,.12);
}
.qa-sholat-bar-item:hover .qa-sbar-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  transform:scale(1.1) rotate(-5deg);
}
.qa-sholat-bar-item:hover .qa-sbar-icon i{
  color:#fff;
}

/* Active (next prayer) */
.qa-sholat-bar-item.qa-sbar-next{
  background:linear-gradient(135deg,var(--primary-50) 0%,rgba(47,133,90,.12) 100%);
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(47,133,90,.1),0 4px 16px rgba(47,133,90,.12);
}
.qa-sholat-bar-item.qa-sbar-next::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg,var(--primary),var(--accent),var(--primary));
  background-size:200% 100%;
  animation:sholatShimmer 2s linear infinite;
}
@keyframes sholatShimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  animation:sholatIconPulse 2s ease-in-out infinite;
}
@keyframes sholatIconPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(47,133,90,.3)}
  50%{box-shadow:0 0 0 6px rgba(47,133,90,0)}
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-icon i{
  color:#fff;
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-time{
  color:var(--primary-dark);
  font-weight:800;
}
.qa-sholat-bar-item.qa-sbar-next .qa-sbar-name{
  color:var(--primary-dark);
  font-weight:700;
}

/* Passed prayers (dimmed) */
.qa-sholat-bar-item.qa-sbar-passed{
  opacity:.55;
}
.qa-sholat-bar-item.qa-sbar-passed .qa-sbar-icon{
  background:var(--gray-100);
}
.qa-sholat-bar-item.qa-sbar-passed .qa-sbar-icon i{
  color:var(--text-muted);
}

/* Labels */
.qa-sbar-name{
  font-size:.56rem;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  line-height:1.1;
  transition:color .3s;
}
.qa-sbar-time{
  font-family:var(--font-heading);
  font-size:.82rem;
  font-weight:700;
  color:var(--text-heading);
  line-height:1.1;
  transition:color .3s,font-weight .3s;
}

/* â”€â”€ Quick Access Responsive â”€â”€ */
@media(max-width:1023px){
  .quick-access-grid{
    gap:18px;
  }
}
@media(max-width:767px){
  .section-quick-access{
    padding:32px 0 28px;
  }
  .quick-access-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .qa-card-header{
    flex-wrap:wrap;
    gap:6px;
    padding:10px 14px 8px;
  }
  
  
  .qa-ticker-badge{
    padding:7px 10px;
    font-size:.66rem;
  }
  .qa-ticker-item{
    font-size:.72rem;
    margin-right:35px;
  }
  .qa-ticker::after{
    display:none;
  }
  .qa-menu-grid{
    gap:1px;
    padding:4px;
  }
  .qa-menu-item{
    padding:8px 4px;
    gap:4px;
  }
  .qa-menu-icon{
    width:40px;
    height:40px;
  }
  .qa-menu-icon i{
    width:34px;
    height:34px;
    font-size:.9rem;
  }
  .qa-menu-icon img{
    width:100%;
    height:100%;
  }
  .qa-menu-item span{
    font-size:.66rem;
  }
  .qa-layanan-card{
    flex:none;
    height:auto;
  }
  .qa-layanan-img{
    height:auto;
    object-fit:contain;
  }
  .qa-layanan-btn{
    padding:8px 20px 8px 16px;
    font-size:.78rem;
    bottom:14%;
  }
  .qa-sholat-bar-header{
    flex-wrap:wrap;
    gap:8px;
    padding:8px 12px;
  }
  .qa-sholat-countdown{
    width:100%;
    justify-content:center;
  }
  .qa-sholat-bar-times{
    flex-wrap:wrap;
    padding:6px 10px;
    gap:5px;
  }
  .qa-sholat-bar-item{
    min-width:calc(33.33% - 4px);
    padding:5px 8px;
    gap:6px;
  }
  .qa-sbar-icon{
    width:24px;height:24px;
    border-radius:7px;
  }
  .qa-sbar-icon i{
    font-size:.52rem;
  }
}
@media(max-width:479px){
  .qa-menu-icon{
    width:36px;
    height:36px;
    border-radius:10px;
  }
  .qa-menu-icon i{
    width:30px;
    height:30px;
    font-size:.85rem;
    border-radius:8px;
  }
  .qa-menu-icon img{
    width:100%;
    height:100%;
  }
  .qa-menu-item{
    padding:8px 4px;
    gap:4px;
  }
  .qa-menu-item span{
    font-size:.62rem;
  }
  .qa-sholat-bar-item{
    min-width:calc(50% - 4px);
    padding:4px 6px;
    gap:5px;
  }
  .qa-sbar-icon{
    width:22px;height:22px;
    border-radius:6px;
  }
  .qa-sbar-icon i{font-size:.48rem}
  .qa-sbar-name{font-size:.5rem}
  .qa-sbar-time{font-size:.72rem}
  .qa-sholat-bar-header{padding:7px 10px}
  .qa-sholat-icon-wrap{width:26px;height:26px;border-radius:8px}
  .qa-sholat-icon-wrap i{font-size:.72rem}
  .qa-sholat-bar-title{font-size:.7rem}
  .qa-sholat-bar-date{font-size:.52rem}
  .qa-sholat-countdown{padding:3px 8px 3px 6px}
  .qa-sholat-countdown span{font-size:.55rem}
  .qa-sholat-countdown i{font-size:.5rem}
  .qa-layanan-btn{
    padding:7px 16px 7px 14px;
    font-size:.7rem;
    gap:6px;
    bottom:10%;
  }
  .qa-layanan-btn-arrow{
    display:none;
  }
}


/* ========== WIDGET JADWAL SHOLAT (Sidebar) ========== */
.wsholat-box{
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  overflow:hidden;
  margin-bottom:20px;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .5s ease, transform .5s ease;
}
.wsholat-box.wsholat-loaded{
  opacity:1;
  transform:translateY(0);
}
.wsholat-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  background:var(--white);
  border-bottom:1px solid var(--border);
  border-left:4px solid var(--primary);
  color:var(--text-heading);
  position:relative;
}
.wsholat-header::before{display:none}
.wsholat-header-icon{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary-50);
  border-radius:8px;
  flex-shrink:0;
}
.wsholat-header-icon i{
  font-size:.8rem;
  color:var(--primary);
}
.wsholat-header-text h3{
  font-family:var(--font-heading);
  font-size:.82rem;
  font-weight:700;
  color:var(--text-heading);
  margin:0;
  line-height:1.2;
}
.wsholat-date{
  font-size:.62rem;
  color:rgba(255,255,255,.65);
  line-height:1.2;
}
.wsholat-countdown{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 14px;
  background:var(--primary-50);
  border-bottom:1px solid var(--border);
  font-family:var(--font-heading);
  font-size:.7rem;
  font-weight:600;
  color:var(--primary-dark);
}
.wsholat-countdown i{
  font-size:.6rem;
  color:var(--primary);
  animation:sholatBellSwing 2s ease-in-out infinite;
}
.wsholat-countdown-active{
  background:var(--accent-soft);
  color:var(--primary-darker);
}
.wsholat-list{
  padding:6px 8px;
}
.wsholat-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:var(--radius);
  transition:all .25s ease;
  border:1.5px solid transparent;
}
.wsholat-item:not(:last-child){
  border-bottom:1px solid var(--gray-100);
}
.wsholat-item:hover{
  background:var(--primary-50);
}
.wsholat-icon{
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  background:var(--gray-50);
  border-radius:8px;
  flex-shrink:0;
  transition:all .25s ease;
}
.wsholat-icon i{
  font-size:.6rem;
  color:var(--primary);
  transition:color .25s ease;
}
.wsholat-name{
  flex:1;
  font-size:.78rem;
  font-weight:600;
  color:var(--text-heading);
}
.wsholat-time{
  font-family:var(--font-heading);
  font-size:.82rem;
  font-weight:700;
  color:var(--text-heading);
}
/* Next prayer highlight */
.wsholat-item.wsholat-next{
  background:linear-gradient(135deg,var(--primary-50),rgba(37,99,235,.08));
  border-color:var(--primary);
  box-shadow:0 0 0 2px rgba(37,99,235,.08);
}
.wsholat-item.wsholat-next .wsholat-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
}
.wsholat-item.wsholat-next .wsholat-icon i{
  color:#fff;
}
.wsholat-item.wsholat-next .wsholat-time{
  color:var(--primary-dark);
  font-weight:800;
}
/* Passed prayers */
.wsholat-item.wsholat-passed{
  opacity:.5;
}
.wsholat-item.wsholat-passed .wsholat-icon{
  background:var(--gray-100);
}
.wsholat-item.wsholat-passed .wsholat-icon i{
  color:var(--text-muted);
}

/* Per-prayer colorful icons & names (default state only) */
.wsholat-item[data-index="0"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon{background:#EEF2FF}
.wsholat-item[data-index="0"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon i{color:#4338CA}
.wsholat-item[data-index="0"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-name{color:#4338CA}

.wsholat-item[data-index="1"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon{background:#FFFBEB}
.wsholat-item[data-index="1"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon i{color:#D97706}
.wsholat-item[data-index="1"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-name{color:#D97706}

.wsholat-item[data-index="2"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon{background:#FFF7ED}
.wsholat-item[data-index="2"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon i{color:#EA580C}
.wsholat-item[data-index="2"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-name{color:#EA580C}

.wsholat-item[data-index="3"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon{background:#FDF2F8}
.wsholat-item[data-index="3"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon i{color:#DB2777}
.wsholat-item[data-index="3"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-name{color:#DB2777}

.wsholat-item[data-index="4"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon{background:#F0FDFA}
.wsholat-item[data-index="4"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-icon i{color:#0D9488}
.wsholat-item[data-index="4"]:not(:hover):not(.wsholat-next):not(.wsholat-passed) .wsholat-name{color:#0D9488}

/* ========== PENGADUAN PAGE ========== */
.pengaduan-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:28px 32px;
  margin-bottom:24px;
  background:linear-gradient(135deg,var(--primary-darker) 0%,var(--primary-dark) 50%,var(--primary) 100%);
  border-radius:var(--radius-lg);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.pengaduan-header::before{
  content:'';
  position:absolute;
  width:220px;height:220px;
  background:rgba(255,255,255,.04);
  border-radius:50%;
  top:-80px;right:-40px;
}
.pengaduan-header::after{
  content:'';
  position:absolute;
  width:120px;height:120px;
  background:rgba(96,165,250,.08);
  border-radius:50%;
  bottom:-30px;left:10%;
}
.pengaduan-header-text{position:relative;z-index:1}
.pengaduan-title{
  font-family:var(--font-heading);
  font-size:1.5rem;
  font-weight:800;
  margin:0 0 6px;
  display:flex;
  align-items:center;
  gap:10px;
  color: #fff;
}
.pengaduan-title i{
  font-size:1.2rem;
  opacity:.8;
}
.pengaduan-subtitle{
  font-size:.88rem;
  opacity:.75;
  margin:0;
  font-weight:400;
}
.pengaduan-cta-btn{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 28px;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(8px);
  color:#fff;
  border:2px solid rgba(255,255,255,.3);
  border-radius:var(--radius-full);
  font-family:var(--font-heading);
  font-size:.9rem;
  font-weight:700;
  cursor:pointer;
  transition:all .3s;
  white-space:nowrap;
}
.pengaduan-cta-btn:hover{
  background:rgba(255,255,255,.25);
  border-color:rgba(255,255,255,.5);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,.15);
}

/* â”€â”€ Filter Bar â”€â”€ */
.pengaduan-filter-bar{
  margin-bottom:24px;
}
.pengaduan-filter-group{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:stretch;
}

/* â”€â”€ Status Tabs â”€â”€ */
.pengaduan-status-tabs{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
}
.pengaduan-tab{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 18px;
  border:2px solid var(--border);
  border-radius:var(--radius-full);
  background:var(--white);
  color:var(--text-muted);
  font-size:.82rem;
  font-weight:600;
  font-family:var(--font-heading);
  cursor:pointer;
  transition:all .25s cubic-bezier(.4,0,.2,1);
  white-space:nowrap;
  position:relative;
  overflow:hidden;
}
.pengaduan-tab::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  opacity:0;
  transition:opacity .25s;
}
.pengaduan-tab:hover{
  border-color:var(--primary-soft);
  color:var(--primary);
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(47,133,90,.1);
}
.pengaduan-tab.active{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  border-color:transparent;
  box-shadow:0 4px 16px rgba(47,133,90,.25);
  transform:translateY(-1px);
}
.pengaduan-tab.active i{color:#fff}
.pengaduan-tab i{
  font-size:.72rem;
  transition:color .2s;
}
/* Colored active variants */
.pengaduan-tab.tab-waiting.active{
  background:linear-gradient(135deg,#E53E3E,#C53030);
  box-shadow:0 4px 16px rgba(197,48,48,.25);
}
.pengaduan-tab.tab-process.active{
  background:linear-gradient(135deg,#D69E2E,#B7791F);
  box-shadow:0 4px 16px rgba(183,121,31,.25);
}
.pengaduan-tab.tab-success.active{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  box-shadow:0 4px 16px rgba(47,133,90,.25);
}

.pengaduan-search-wrap{
  flex:1;
  min-width:240px;
  display:flex;
  align-items:stretch;
  position:relative;
  border:2px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  transition:border .2s;
}
.pengaduan-search-wrap:focus-within{border-color:var(--primary)}
.pengaduan-search-icon{
  position:absolute;
  left:14px;top:50%;
  transform:translateY(-50%);
  color:var(--text-muted);
  font-size:.85rem;
  pointer-events:none;
}
.pengaduan-search-input{
  border:none!important;
  padding-left:40px!important;
  border-radius:0!important;
  flex:1;
}
.pengaduan-search-input:focus{box-shadow:none!important}
.pengaduan-search-btn{
  padding:0 20px;
  background:var(--primary);
  color:#fff;
  border:none;
  font-weight:600;
  font-size:.85rem;
  cursor:pointer;
  transition:background .2s;
  white-space:nowrap;
}
.pengaduan-search-btn:hover{background:var(--primary-dark)}

/* â”€â”€ Card Grid â”€â”€ */
.pengaduan-grid{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:120px;
}
.pengaduan-card{
  display:flex;
  align-items:stretch;
  gap:0;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  cursor:pointer;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  animation:pengaduanCardIn .5s ease both;
}
.pengaduan-card:hover{
  border-color:var(--primary-soft);
  box-shadow:0 8px 30px rgba(47,133,90,.1);
  transform:translateY(-2px);
}
@keyframes pengaduanCardIn{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}

/* Card Image */
.pengaduan-card-img-wrap{
  flex:0 0 160px;
  width:160px;
  min-height:130px;
  overflow:hidden;
  position:relative;
  background:var(--gray-50);
}
.pengaduan-card-img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s;
}
.pengaduan-card:hover .pengaduan-card-img{
  transform:scale(1.05);
}

/* Card Body */
.pengaduan-card-body{
  flex:1;
  padding:16px 20px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  min-width:0;
}
.pengaduan-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.pengaduan-card-title{
  font-family:var(--font-heading);
  font-size:1rem;
  font-weight:700;
  color:var(--text-heading);
  margin:0;
  line-height:1.4;
}
.pengaduan-card-desc{
  font-size:.85rem;
  color:var(--text-muted);
  line-height:1.6;
  margin:0;
}
.pengaduan-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:.78rem;
  color:var(--text-muted);
}
.pengaduan-card-meta span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.pengaduan-card-meta i{
  color:var(--primary);
  font-size:.7rem;
}
.pengaduan-card-comments{
  color:var(--primary)!important;
  font-weight:600;
}
.pengaduan-card-arrow{
  display:flex;
  align-items:center;
  padding:0 18px;
  color:var(--gray-300);
  font-size:1rem;
  transition:color .2s;
}
.pengaduan-card:hover .pengaduan-card-arrow{
  color:var(--primary);
}

/* â”€â”€ Status Badges â”€â”€ */
.pengaduan-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 12px;
  border-radius:var(--radius-full);
  font-size:.72rem;
  font-weight:700;
  white-space:nowrap;
  flex-shrink:0;
}
.pengaduan-badge-waiting{
  background:#FFF5F5;
  color:#C53030;
  border:1px solid #FED7D7;
}
.pengaduan-badge-process{
  background:#FFFFF0;
  color:#B7791F;
  border:1px solid #FEFCBF;
}
.pengaduan-badge-success{
  background:var(--primary-light);
  color:var(--primary-dark);
  border:1px solid var(--primary-soft);
}

/* â”€â”€ Pagination Wrap â”€â”€ */
.pengaduan-pag-wrap{
  padding:20px 0 0;
  text-align:center;
}

/* â”€â”€ Loading State â”€â”€ */
.pengaduan-loading{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:60px 20px;
  gap:16px;
  color:var(--text-muted);
  font-size:.9rem;
}
.pengaduan-loading-spinner{
  width:36px;height:36px;
  border:3px solid var(--border);
  border-top-color:var(--primary);
  border-radius:50%;
  animation:pengaduanSpin .7s linear infinite;
}
@keyframes pengaduanSpin{to{transform:rotate(360deg)}}

/* â”€â”€ Modal Enhancements â”€â”€ */
.pengaduan-modal-content{
  border-radius:var(--radius-xl,20px);
  overflow:hidden;
}
.pengaduan-modal-header{
  background:linear-gradient(135deg,var(--primary-darker),var(--primary));
  color:#fff;
  padding:20px 28px;
  border-bottom:none;
}
.pengaduan-modal-title-wrap{
  display:flex;
  align-items:center;
  gap:12px;
}
.pengaduan-modal-icon{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.15);
  border-radius:10px;
  font-size:.95rem;
}
.pengaduan-modal-header h5{
  font-family:var(--font-heading);
  font-size:1.05rem;
  font-weight:700;
  margin:0;
  color:#fff;
}
.pengaduan-modal-close{
  background:rgba(255,255,255,.15);
  border:none;
  color:#fff;
  width:32px;height:32px;
  border-radius:8px;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;
  transition:background .2s;
}
.pengaduan-modal-close:hover{background:rgba(255,255,255,.3)}
.pengaduan-modal-body{
  padding:28px;
  max-height:70vh;
  overflow-y:auto;
}

/* â”€â”€ Form Enhancements â”€â”€ */
.pengaduan-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 20px;
}
.text-required{color:#E53E3E;font-weight:700}

/* File Upload Area */
.pengaduan-upload-area{
  border:2px dashed var(--border);
  border-radius:var(--radius-lg);
  padding:24px;
  text-align:center;
  cursor:pointer;
  transition:all .25s;
  position:relative;
  background:var(--gray-50);
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pengaduan-upload-area:hover,.pengaduan-upload-area.drag-over{
  border-color:var(--primary);
  background:var(--primary-light);
}
.pengaduan-file-hidden{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  z-index:2;
}
.pengaduan-file-text-hidden{
  position:absolute;
  width:0;height:0;
  opacity:0;
  pointer-events:none;
  overflow:hidden;
}
.pengaduan-upload-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  color:var(--text-muted);
}
.pengaduan-upload-placeholder i{
  font-size:2rem;
  color:var(--primary);
  opacity:.5;
}
.pengaduan-upload-placeholder span{
  font-size:.85rem;
  font-weight:600;
}
.pengaduan-upload-placeholder small{
  font-size:.75rem;
  opacity:.7;
}
.pengaduan-upload-preview{
  max-width:100%;
  max-height:180px;
  border-radius:var(--radius);
  object-fit:contain;
}

/* Captcha Row */
.pengaduan-captcha-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:4px;
}
.pengaduan-captcha-img-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  background:var(--gray-50);
  padding:6px 10px;
  border-radius:var(--radius);
  border:1px solid var(--border);
}
.pengaduan-captcha-img{
  height:38px;
  width:auto;
}
.pengaduan-captcha-refresh{
  background:none;
  border:none;
  color:var(--primary);
  cursor:pointer;
  font-size:.85rem;
  padding:4px;
  transition:transform .3s;
}
.pengaduan-captcha-refresh:hover{transform:rotate(180deg)}
.pengaduan-captcha-input{
  max-width:180px!important;
  flex:1;
}

/* â”€â”€ Detail Modal Content â”€â”€ */
.pengaduan-detail-header-row{
  margin-bottom:16px;
}
.pengaduan-detail-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
  font-size:.82rem;
  color:var(--text-muted);
}
.pengaduan-detail-meta span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.pengaduan-detail-meta i{
  color:var(--primary);
  font-size:.75rem;
}
.pengaduan-detail-image{
  margin-bottom:18px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--gray-50);
}
.pengaduan-detail-image img{
  width:100%;
  max-height:340px;
  object-fit:contain;
  display:block;
}
.pengaduan-detail-isi{
  font-size:.92rem;
  line-height:1.75;
  color:var(--text-body);
  margin-bottom:20px;
}

/* Replies */
.pengaduan-replies-section{
  border-top:1px solid var(--border);
  padding-top:20px;
}
.pengaduan-replies-title{
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:700;
  color:var(--text-heading);
  margin:0 0 14px;
  display:flex;
  align-items:center;
  gap:8px;
}
.pengaduan-replies-title i{color:var(--primary);font-size:.85rem}
.pengaduan-reply-card{
  display:flex;
  gap:14px;
  padding:14px 16px;
  background:var(--gray-50);
  border-radius:var(--radius);
  margin-bottom:10px;
  border-left:3px solid var(--primary);
}
.pengaduan-reply-avatar{
  width:36px;height:36px;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;
  flex-shrink:0;
}
.pengaduan-reply-body{flex:1;min-width:0}
.pengaduan-reply-meta{
  font-size:.78rem;
  color:var(--text-muted);
  margin-bottom:6px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.pengaduan-reply-meta strong{color:var(--text-heading)}
.pengaduan-reply-body p{
  font-size:.85rem;
  line-height:1.6;
  color:var(--text-body);
  margin:0;
}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:767px){
  .pengaduan-header{padding:20px 22px;flex-direction:column;align-items:flex-start}
  .pengaduan-title{font-size:1.2rem}
  .pengaduan-filter-group{flex-direction:column}
  .pengaduan-status-tabs{width:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;gap:5px;padding-bottom:4px}
  .pengaduan-tab{padding:7px 14px;font-size:.78rem}
  .pengaduan-search-wrap{min-width:100%}
  .pengaduan-card{flex-direction:column}
  .pengaduan-card-img-wrap{flex:none;width:100%;min-height:160px;max-height:200px}
  .pengaduan-card-arrow{display:none}
  .pengaduan-form-grid{grid-template-columns:1fr}
  .pengaduan-modal-body{padding:20px}
  .pengaduan-captcha-row{flex-direction:column;align-items:flex-start}
  .pengaduan-captcha-input{max-width:100%!important;width:100%}
  .pengaduan-detail-image img{max-height:240px}
}
@media(max-width:479px){
  .pengaduan-header{padding:16px}
  .pengaduan-title{font-size:1.05rem}
  .pengaduan-subtitle{font-size:.8rem}
  .pengaduan-cta-btn{width:100%;justify-content:center;padding:10px 20px;font-size:.85rem}
  .pengaduan-card-body{padding:12px 14px}
  .pengaduan-card-title{font-size:.92rem}
  .pengaduan-modal-body{padding:16px}
}

/* ========== DATA KESEHATAN / STUNTING ========== */
.kes-header{
  position:relative;
  background:linear-gradient(135deg,#1C4D35 0%,#1E40AF 55%,#38A169 100%);
  border-radius:18px;
  padding:44px 40px 38px;
  margin-bottom:28px;
  overflow:hidden;
  color:#fff;
}
.kes-header-deco{
  position:absolute;
  border-radius:50%;
  opacity:.10;
  pointer-events:none;
}
.kes-header-deco-1{
  width:220px;height:220px;
  background:#fff;
  top:-60px;right:-40px;
}
.kes-header-deco-2{
  width:120px;height:120px;
  background:#60A5FA;
  bottom:-30px;left:40px;
}
.kes-header-text{position:relative;z-index:1}
.kes-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.65rem;
  font-weight:800;
  margin:0 0 6px;
  color:#fff;
}
.kes-subtitle{
  font-size:.95rem;
  opacity:.85;
  margin:0;
  font-weight:400;
}

/* â”€â”€ Filter Bar â”€â”€ */
.kes-filter-bar{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:20px 24px;
  margin-bottom:28px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-filter-form{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:flex-end;
}
.kes-filter-group{
  display:flex;
  flex-direction:column;
  gap:5px;
  flex:1;
  min-width:160px;
}
.kes-filter-group label{
  font-size:.75rem;
  font-weight:700;
  color:#4a5568;
  text-transform:uppercase;
  letter-spacing:.5px;
  display:flex;
  align-items:center;
  gap:5px;
  margin:0;
  line-height:1;
}
.kes-filter-group label i{
  color:#1E40AF;
  font-size:.8rem;
}
select.kes-filter-field,
.kes-filter-bar select.kes-filter-field{
  width:100%;
  height:42px;
  border:1.5px solid #cbd5e0;
  border-radius:8px;
  padding:0 32px 0 12px;
  font-size:.88rem;
  color:#2d3748;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a5568' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  transition:border-color .2s,box-shadow .2s;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  cursor:pointer;
  box-sizing:border-box;
  margin:0;
}
select.kes-filter-field:focus,
.kes-filter-bar select.kes-filter-field:focus{
  outline:none;
  border-color:#1E40AF;
  box-shadow:0 0 0 3px rgba(47,133,90,.12);
}
.kes-filter-btn-wrap{
  display:flex;
  align-items:flex-end;
  flex-shrink:0;
}
.kes-filter-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:42px;
  padding:0 24px;
  background:linear-gradient(135deg,#1E40AF,#276749);
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:.88rem;
  font-weight:600;
  cursor:pointer;
  transition:transform .15s,box-shadow .2s;
  white-space:nowrap;
}
.kes-filter-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(47,133,90,.25);
}

/* â”€â”€ Content Area â”€â”€ */
.kes-content{
  min-height:200px;
}

/* â”€â”€ Widget Grid â”€â”€ */
.kes-widget-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:30px;
}
.kes-widget-card{
  display:flex;
  align-items:center;
  gap:16px;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:18px 20px;
  transition:transform .2s,box-shadow .2s;
}
.kes-widget-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.kes-widget-icon{
  width:52px;height:52px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.3rem;
  color:#fff;
  flex-shrink:0;
}
.kes-widget-icon.bg-blue{background:linear-gradient(135deg,#3182ce,#2b6cb0)}
.kes-widget-icon.bg-gray{background:linear-gradient(135deg,#718096,#4a5568)}
.kes-widget-icon.bg-green{background:linear-gradient(135deg,#38a169,#276749)}
.kes-widget-icon.bg-yellow{background:linear-gradient(135deg,#d69e2e,#b7791f)}
.kes-widget-icon.bg-red{background:linear-gradient(135deg,#e53e3e,#c53030)}
.kes-widget-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.kes-widget-total{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;
  font-weight:800;
  color:#1a202c;
  line-height:1.1;
}
.kes-widget-label{
  font-size:.78rem;
  color:#718096;
  font-weight:500;
  line-height:1.3;
}

/* â”€â”€ Section Title â”€â”€ */
.kes-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;
  font-weight:700;
  color:#1C4D35;
  margin:30px 0 16px;
  padding-bottom:8px;
  border-bottom:2px solid #e2e8f0;
  display:flex;
  align-items:center;
  gap:8px;
}
.kes-section-title i{
  color:#1E40AF;
  font-size:1.1rem;
}

/* â”€â”€ Chart Cards â”€â”€ */
.kes-chart-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:24px;
}
.kes-chart-card{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  overflow:hidden;
  margin-bottom:24px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-chart-card-sm{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-chart-card-header{
  background:linear-gradient(135deg,#f7fafc,#edf2f7);
  padding:14px 20px;
  border-bottom:1px solid #e2e8f0;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;
  font-weight:700;
  color:#2d3748;
}
.kes-chart-card-sm .highcharts-container,
.kes-chart-card .highcharts-container{
  border-radius:0 0 14px 14px;
}

/* â”€â”€ Scorecard â”€â”€ */
.kes-scorecard-wrap{
  margin-top:8px;
}
.kes-scorecard-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-bottom:16px;
}
.kes-scorecard-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 20px;
  border-radius:8px;
  font-size:.85rem;
  font-weight:600;
  cursor:pointer;
  transition:all .2s;
  text-decoration:none;
}
.kes-scorecard-btn.btn-outline{
  background:#fff;
  color:#1E40AF;
  border:1.5px solid #1E40AF;
}
.kes-scorecard-btn.btn-outline:hover{
  background:#EFF6FF;
  color:#276749;
}
.kes-scorecard-btn.btn-primary{
  background:linear-gradient(135deg,#1E40AF,#276749);
  color:#fff;
  border:none;
}
.kes-scorecard-btn.btn-primary:hover{
  box-shadow:0 4px 12px rgba(47,133,90,.3);
  transform:translateY(-1px);
}

/* â”€â”€ Scorecard Table â”€â”€ */
.kes-scorecard-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.kes-sc-table{
  width:100%;
  border-collapse:collapse;
  font-size:.82rem;
  color:#2d3748;
  min-width:700px;
}
.kes-sc-table th,
.kes-sc-table td{
  padding:10px 12px;
  border:1px solid #e2e8f0;
  vertical-align:middle;
}
.kes-sc-table th{
  font-weight:600;
  background:#f7fafc;
  color:#2d3748;
  font-size:.8rem;
}
.kes-sc-table td{
  font-size:.82rem;
}
.kes-sc-section-header{
  background:linear-gradient(135deg,#1C4D35,#1E40AF) !important;
  color:#fff !important;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.85rem !important;
  font-weight:700 !important;
  letter-spacing:.3px;
  padding:12px 16px !important;
  text-align:left;
}
.kes-sc-sasaran{
  background:#EFF6FF !important;
  color:#276749 !important;
  font-weight:700;
  font-size:.8rem;
  writing-mode:horizontal-tb;
}
.kes-sc-green{
  color:#276749;
  font-weight:700;
  background:#EFF6FF !important;
}
.kes-sc-yellow{
  color:#b7791f;
  font-weight:700;
  background:#fefcbf !important;
}
.kes-sc-red{
  color:#c53030;
  font-weight:700;
  background:#fff5f5 !important;
}
.kes-sc-total-row{
  background:#EFF6FF !important;
}
.kes-sc-total-row th,
.kes-sc-total-row td{
  font-weight:700 !important;
  color:#1C4D35;
}
.kes-sc-table .text-center{
  text-align:center;
}

/* â”€â”€ Loading Spinner â”€â”€ */
.kes-loading{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:60px 20px;
  gap:14px;
  color:#718096;
}
.kes-loading .kes-spinner{
  width:40px;height:40px;
  border:3px solid #e2e8f0;
  border-top-color:#1E40AF;
  border-radius:50%;
  animation:kesSpin .8s linear infinite;
}
@keyframes kesSpin{to{transform:rotate(360deg)}}

/* â”€â”€ Responsive â”€â”€ */
@media(max-width:991px){
  .kes-widget-grid{grid-template-columns:repeat(2,1fr)}
  .kes-chart-row{grid-template-columns:1fr 1fr}
}
@media(max-width:767px){
  .kes-header{padding:28px 22px 24px;border-radius:14px}
  .kes-title{font-size:1.25rem}
  .kes-subtitle{font-size:.85rem}
  .kes-header-deco-1{width:140px;height:140px;top:-30px;right:-20px}
  .kes-header-deco-2{width:80px;height:80px;bottom:-20px;left:20px}
  .kes-filter-bar{padding:16px 18px;border-radius:12px}
  .kes-filter-form{gap:10px}
  .kes-filter-group{min-width:100%;flex:unset}
  .kes-filter-btn{width:100%;justify-content:center}
  .kes-widget-grid{grid-template-columns:1fr 1fr;gap:12px}
  .kes-widget-card{padding:14px 16px;border-radius:12px}
  .kes-widget-icon{width:44px;height:44px;font-size:1.1rem;border-radius:12px}
  .kes-widget-total{font-size:1.25rem}
  .kes-chart-row{grid-template-columns:1fr;gap:14px}
  .kes-chart-card,.kes-chart-card-sm{border-radius:12px}
  .kes-scorecard-actions{flex-direction:column;gap:8px}
  .kes-scorecard-btn{width:100%;justify-content:center}
  .kes-scorecard-table-wrap{border-radius:12px}
}
@media(max-width:479px){
  .kes-header{padding:20px 16px 18px;margin-bottom:20px}
  .kes-title{font-size:1.1rem}
  .kes-widget-grid{grid-template-columns:1fr;gap:10px}
  .kes-widget-card{padding:12px 14px}
  .kes-widget-icon{width:40px;height:40px;font-size:1rem;border-radius:10px}
  .kes-widget-total{font-size:1.15rem}
  .kes-filter-bar{padding:14px;border-radius:10px}
  .kes-section-title{font-size:1rem}
}

/* ========== 404 ERROR PAGE ========== */
.err404-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:520px;
  padding:60px 24px 80px;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(var(--primary-rgb),.06) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(96,165,250,.06) 0%, transparent 50%),
    linear-gradient(180deg, rgba(var(--primary-rgb),.02) 0%, var(--white) 100%);
}

/* Decorative floating shapes */
.err404-shapes{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.err404-shape{
  position:absolute;
  border-radius:50%;
  opacity:.07;
}
.err404-shape-1{
  width:300px;height:300px;
  background:var(--primary);
  top:-80px;right:-60px;
  animation:err404Float 8s ease-in-out infinite;
}
.err404-shape-2{
  width:180px;height:180px;
  background:var(--accent);
  bottom:-40px;left:-30px;
  animation:err404Float 6s ease-in-out 1s infinite reverse;
}
.err404-shape-3{
  width:80px;height:80px;
  background:var(--primary);
  top:30%;left:8%;
  animation:err404Float 7s ease-in-out 2s infinite;
}
.err404-shape-4{
  width:50px;height:50px;
  background:var(--accent);
  top:20%;right:12%;
  border-radius:12px;
  transform:rotate(45deg);
  animation:err404Float 5s ease-in-out .5s infinite reverse;
}
.err404-shape-5{
  width:120px;height:120px;
  background:var(--primary-dark);
  bottom:10%;right:5%;
  animation:err404Float 9s ease-in-out 3s infinite;
}
@keyframes err404Float{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-20px) scale(1.05)}
}

/* Content wrapper */
.err404-content{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  max-width:560px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) both;
}
@keyframes err404FadeUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

/* === 4 0 4 Number === */
.err404-number-wrap{
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:20px;
  user-select:none;
}
.err404-digit{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:8rem;
  font-weight:900;
  line-height:1;
  background:var(--gradient-boja);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  text-shadow:none;
  animation:err404DigitPulse 3s ease-in-out infinite;
}
.err404-digit-1{animation-delay:0s}
.err404-digit-2{animation-delay:.3s}
@keyframes err404DigitPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.04)}
}

/* Compass icon in the middle */
.err404-digit-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:96px;height:96px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  border-radius:50%;
  box-shadow:
    0 8px 32px rgba(var(--primary-rgb),.25),
    0 0 0 6px rgba(var(--primary-rgb),.1),
    0 0 0 12px rgba(var(--primary-rgb),.05);
  margin:0 6px;
  position:relative;
}
.err404-compass{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  font-size:2.5rem;
  animation:err404Spin 4s linear infinite;
}
@keyframes err404Spin{
  0%{transform:rotate(0deg)}
  25%{transform:rotate(90deg)}
  50%{transform:rotate(180deg)}
  75%{transform:rotate(270deg)}
  100%{transform:rotate(360deg)}
}

/* === Subtitle === */
.err404-subtitle{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .2s both;
}
.err404-line{
  width:50px;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  border-radius:2px;
}
.err404-subtitle-text{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.35rem;
  font-weight:700;
  color:var(--primary-darker);
  letter-spacing:-.02em;
}

/* Description */
.err404-desc{
  font-size:.95rem;
  line-height:1.7;
  color:var(--text-muted);
  max-width:440px;
  margin:0 0 32px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .35s both;
}

/* === Action Buttons === */
.err404-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  margin-bottom:28px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .5s both;
}
.err404-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 28px;
  border-radius:50px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.9rem;
  font-weight:600;
  cursor:pointer;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  text-decoration:none;
  border:none;
  outline:none;
  position:relative;
  overflow:hidden;
}
.err404-btn::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  opacity:0;
  transition:opacity .3s;
}
.err404-btn:hover::before{opacity:1}

/* Primary button */
.err404-btn-primary{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:var(--white);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.25);
}
.err404-btn-primary::before{
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%);
}
.err404-btn-primary:hover{
  color:var(--white);
  box-shadow:0 6px 24px rgba(var(--primary-rgb),.35);
  transform:translateY(-2px);
}
.err404-btn-primary i{font-size:1rem}

/* Outline button */
.err404-btn-outline{
  background:var(--white);
  color:var(--primary);
  border:2px solid rgba(var(--primary-rgb),.2);
  padding:10px 26px;
}
.err404-btn-outline::before{
  background:rgba(var(--primary-rgb),.05);
}
.err404-btn-outline:hover{
  color:var(--primary-dark);
  border-color:var(--primary);
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(var(--primary-rgb),.12);
}

/* === Hint === */
.err404-hint{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:linear-gradient(135deg,rgba(96,165,250,.08) 0%,rgba(var(--primary-rgb),.06) 100%);
  border:1px solid rgba(96,165,250,.15);
  border-radius:14px;
  padding:12px 22px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .65s both;
}
.err404-hint i{
  color:var(--accent);
  font-size:1.1rem;
  flex-shrink:0;
}
.err404-hint span{
  font-size:.82rem;
  color:var(--text-muted);
  line-height:1.5;
}

/* === Responsive === */
@media(max-width:767px){
  .err404-wrap{min-height:420px;padding:40px 16px 60px}
  .err404-digit{font-size:5.5rem}
  .err404-digit-icon{width:68px;height:68px}
  .err404-compass{font-size:1.8rem}
  .err404-subtitle-text{font-size:1.1rem}
  .err404-line{width:30px}
  .err404-desc{font-size:.88rem}
  .err404-actions{gap:10px}
  .err404-btn{padding:10px 22px;font-size:.85rem}
  .err404-btn-outline{padding:8px 20px}
  .err404-shape-1{width:180px;height:180px}
  .err404-shape-2{width:120px;height:120px}
}
@media(max-width:479px){
  .err404-wrap{min-height:380px;padding:30px 12px 50px}
  .err404-digit{font-size:4rem}
  .err404-digit-icon{width:52px;height:52px;margin:0 2px}
  .err404-compass{font-size:1.4rem}
  .err404-subtitle{gap:10px;margin-bottom:12px}
  .err404-subtitle-text{font-size:.95rem}
  .err404-line{width:20px}
  .err404-desc{font-size:.82rem;margin-bottom:24px}
  .err404-actions{flex-direction:column;gap:8px;width:100%}
  .err404-btn{width:100%;justify-content:center;padding:11px 20px}
  .err404-btn-outline{width:100%;justify-content:center;padding:9px 18px}
  .err404-hint{padding:10px 16px}
  .err404-hint span{font-size:.78rem}
}

/* ========== GALERI ========== */
.galeri-header{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:28px;
  padding-bottom:20px;
  border-bottom:2px solid #e8f0e8;
}
.galeri-header-icon{
  width:52px;height:52px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.35rem;
  flex-shrink:0;
  box-shadow:0 4px 14px rgba(47,133,90,.25);
}
.galeri-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;font-weight:800;
  color:var(--text-dark);
  margin:0;line-height:1.3;
}
.galeri-subtitle{
  color:var(--text-muted);
  font-size:.88rem;margin:2px 0 0;
}

/* Loading */
.galeri-loading{
  text-align:center;padding:3rem;
  grid-column:1/-1;
}
.galeri-loading i{
  font-size:1.5rem;color:var(--primary);
}
.galeri-loading p{
  margin-top:.75rem;color:var(--text-muted);font-size:.9rem;
}

/* Grid */
.galeri-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

/* Card */
.galeri-card{
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  border:1px solid #e8efe8;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  transition:all .3s ease;
}
.galeri-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 28px rgba(47,133,90,.13);
  border-color:var(--primary);
}
.galeri-card-link{
  display:block;
  text-decoration:none !important;
  color:inherit;
}
.galeri-card-img{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
  background:#f0f5f0;
}
.galeri-card-img img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .45s ease, filter .35s ease;
}
.galeri-card:hover .galeri-card-img img{
  transform:scale(1.08);
  filter:brightness(.85);
}

/* Hover overlay */
.galeri-card-overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:rgba(47,133,90,.5);
  opacity:0;
  transition:opacity .35s ease;
}
.galeri-card:hover .galeri-card-overlay{
  opacity:1;
}
.galeri-card-overlay i{
  font-size:1.6rem;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.25);
}
.galeri-card-overlay span{
  color:#fff;
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.3px;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}

/* Card info / caption */
.galeri-card-info{
  padding:14px 16px;
}
.galeri-card-info h4{
  margin:0;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.92rem;
  font-weight:700;
  color:var(--text-dark);
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  transition:color .25s ease;
}
.galeri-card:hover .galeri-card-info h4{
  color:var(--primary);
}

/* Empty state */
.galeri-empty{
  grid-column:1/-1;
  text-align:center;
  padding:3rem 2rem;
}
.galeri-empty img{
  width:140px;height:auto;
  opacity:.55;
  margin:0 auto 20px;
  display:block;
}
.galeri-empty h3{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;
  font-weight:700;
  color:var(--text-dark);
  margin:0 0 8px;
}
.galeri-empty p{
  color:var(--text-muted);
  font-size:.9rem;
  max-width:380px;
  margin:0 auto;
  line-height:1.6;
}

/* ---- Galeri Responsive ---- */
@media(max-width:991px){
  .galeri-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .galeri-title{font-size:1.25rem;}
  .galeri-header-icon{width:44px;height:44px;font-size:1.15rem;border-radius:12px;}
}
@media(max-width:575px){
  .galeri-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .galeri-header{gap:12px;margin-bottom:20px;padding-bottom:16px;}
  .galeri-title{font-size:1.1rem;}
  .galeri-header-icon{width:40px;height:40px;font-size:1rem;border-radius:10px;}
  .galeri-card{border-radius:10px;}
  .galeri-card-info{padding:10px 12px;}
  .galeri-card-info h4{font-size:.84rem;}
  .galeri-card-overlay i{font-size:1.3rem;}
  .galeri-card-overlay span{font-size:.78rem;}
}

/* ========== LAPAK DESA ========== */
.lapak-header{
  display:flex;align-items:center;gap:16px;
  margin-bottom:24px;padding-bottom:18px;
  border-bottom:2px solid #e8f0e8;
}
.lapak-header-icon{
  width:52px;height:52px;border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.35rem;flex-shrink:0;
  box-shadow:0 4px 14px rgba(47,133,90,.25);
}
.lapak-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.5rem;font-weight:800;color:var(--text-dark);
  margin:0;line-height:1.3;
}
.lapak-subtitle{color:var(--text-muted);font-size:.88rem;margin:2px 0 0;}

/* Filter Bar */
.lapak-filter{
  background:#f7faf7;border:1px solid #e8f0e8;
  border-radius:14px;padding:16px 20px;margin-bottom:24px;
}
.lapak-filter-inner{
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;
}
.lapak-filter-field{
  position:relative;flex:1;min-width:180px;
}
.lapak-filter-field > i{
  position:absolute;left:12px;top:50%;transform:translateY(-50%);
  color:var(--primary);font-size:.85rem;z-index:2;pointer-events:none;
}
.lapak-filter-field .form-control,
.lapak-filter-field .select2-container .select2-selection--single{
  padding-left:36px !important;border-radius:10px !important;
  border:1px solid #d4e4d4 !important;height:42px !important;
  font-size:.9rem;
}
.lapak-filter-search{flex:1.5;}
.lapak-btn-cari{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;border:none;border-radius:10px;padding:10px 22px;
  font-size:.9rem;font-weight:600;cursor:pointer;
  transition:all .25s ease;white-space:nowrap;
}
.lapak-btn-cari:hover{background:var(--primary-darker);transform:translateY(-1px);box-shadow:0 4px 12px rgba(47,133,90,.25);}
.lapak-btn-reset{
  background:#fff;color:var(--text-muted);border:1px solid #d4e4d4;
  border-radius:10px;padding:10px 18px;font-size:.9rem;font-weight:600;
  cursor:pointer;transition:all .25s ease;white-space:nowrap;
}
.lapak-btn-reset:hover{border-color:var(--primary);color:var(--primary);}

/* Loading */
.lapak-loading{text-align:center;padding:3rem;grid-column:1/-1;}
.lapak-loading i{font-size:1.5rem;color:var(--primary);}
.lapak-loading p{margin-top:.75rem;color:var(--text-muted);font-size:.9rem;}

/* Product Grid */
.lapak-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

/* Product Card */
.lapak-card{
  border-radius:14px;overflow:hidden;
  background:#fff;border:1px solid #e8efe8;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  transition:all .3s ease;
  display:flex;flex-direction:column;
}
.lapak-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 28px rgba(47,133,90,.13);
  border-color:var(--primary);
}

/* Card Image */
.lapak-card-img{
  position:relative;overflow:hidden;
  aspect-ratio:4/3;background:#f0f5f0;
}
.lapak-card-img > img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .4s ease;
}
.lapak-card:hover .lapak-card-img > img{transform:scale(1.05);}

/* Image Slider */
.lapak-slider{position:relative;width:100%;height:100%;}
.lapak-slide{
  position:absolute;inset:0;opacity:0;
  transition:opacity .4s ease;
}
.lapak-slide.active{opacity:1;position:relative;}
.lapak-slide img{width:100%;height:100%;object-fit:cover;}
.lapak-slider-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.85);border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:3;font-size:.7rem;color:var(--text-dark);
  box-shadow:0 2px 8px rgba(0,0,0,.15);
  opacity:0;transition:opacity .3s ease;
}
.lapak-card:hover .lapak-slider-btn{opacity:1;}
.lapak-slider-btn.prev{left:8px;}
.lapak-slider-btn.next{right:8px;}
.lapak-slider-btn:hover{background:#fff;}
.lapak-slider-dots{
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  display:flex;gap:5px;z-index:3;
}
.lapak-slider-dots .dot{
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.5);transition:all .3s ease;
}
.lapak-slider-dots .dot.active{background:#fff;transform:scale(1.3);}

/* Badges */
.lapak-badge-diskon{
  position:absolute;top:10px;left:10px;z-index:2;
  background:linear-gradient(135deg,#e53e3e,#c53030);color:#fff;
  font-size:.72rem;font-weight:700;padding:4px 10px;
  border-radius:8px;letter-spacing:.3px;
  box-shadow:0 2px 8px rgba(229,62,62,.3);
}
.lapak-badge-kategori{
  position:absolute;top:10px;right:10px;z-index:2;
  background:rgba(255,255,255,.92);color:var(--primary);
  font-size:.72rem;font-weight:700;padding:4px 10px;
  border-radius:8px;backdrop-filter:blur(4px);
  border:1px solid rgba(47,133,90,.15);
}

/* Card Body */
.lapak-card-body{padding:16px;flex:1;display:flex;flex-direction:column;}
.lapak-card-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.95rem;font-weight:700;color:var(--text-dark);
  margin:0 0 8px;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
  transition:color .25s ease;
}
.lapak-card:hover .lapak-card-title{color:var(--primary);}

/* Price */
.lapak-card-price{
  display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:8px;
}
.price-now{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.1rem;font-weight:800;color:var(--primary);
}
.price-old{
  font-size:.78rem;color:#999;text-decoration:line-through;
}
.price-unit{font-size:.78rem;color:var(--text-muted);}

.lapak-card-desc{
  font-size:.82rem;color:var(--text-secondary);
  line-height:1.55;margin:0 0 10px;flex:1;
}

/* Seller */
.lapak-card-seller{
  display:flex;align-items:center;gap:6px;
  font-size:.82rem;color:var(--text-muted);
  padding-top:10px;border-top:1px solid #f0f5f0;
}
.lapak-card-seller i.fa-user-circle{color:var(--primary);font-size:1rem;}
.lapak-card-seller .verified{color:#38a169;font-size:.7rem;}

/* Card Footer: Buttons */
.lapak-card-footer{
  display:flex;gap:8px;padding:0 16px 16px;
}
.lapak-btn-wa{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;
  border:none;border-radius:10px;padding:10px 16px;
  font-size:.85rem;font-weight:600;text-decoration:none !important;
  transition:all .25s ease;cursor:pointer;
}
.lapak-btn-wa:hover{background:#128c7e;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,211,102,.3);}
.lapak-btn-lokasi{
  width:42px;height:42px;border-radius:10px;
  background:#f0f5f0;border:1px solid #d4e4d4;
  display:flex;align-items:center;justify-content:center;
  color:var(--primary);font-size:.95rem;cursor:pointer;
  transition:all .25s ease;
}
.lapak-btn-lokasi:hover{background:var(--primary);color:#fff;border-color:var(--primary);}

/* Empty State */
.lapak-empty{grid-column:1/-1;text-align:center;padding:3rem 2rem;}
.lapak-empty img{width:140px;height:auto;opacity:.55;margin:0 auto 20px;display:block;}
.lapak-empty h3{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;font-weight:700;color:var(--text-dark);margin:0 0 8px;
}
.lapak-empty p{color:var(--text-muted);font-size:.9rem;max-width:380px;margin:0 auto;line-height:1.6;}

/* Modal Lokasi (custom, no Bootstrap JS) */
.lapak-modal-overlay{
  position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,.55);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
  backdrop-filter:blur(3px);
}
.lapak-modal-overlay.active{opacity:1;visibility:visible;}
.lapak-modal{
  background:#fff;border-radius:16px;
  width:90%;max-width:600px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  transform:translateY(20px) scale(.97);
  transition:transform .35s ease;
  overflow:hidden;
}
.lapak-modal-overlay.active .lapak-modal{
  transform:translateY(0) scale(1);
}
.lapak-modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 24px;border-bottom:1px solid #e8f0e8;
}
.lapak-modal-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.1rem;font-weight:700;color:var(--text-dark);
  margin:0;
}
.lapak-modal-close{
  width:36px;height:36px;border-radius:10px;
  background:#f0f5f0;border:none;
  font-size:1.3rem;color:var(--text-muted);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .2s ease;
}
.lapak-modal-close:hover{background:#e8efe8;color:var(--primary);}
.lapak-modal-body{padding:20px 24px 24px;}

/* ---- Lapak Responsive ---- */
@media(max-width:991px){
  .lapak-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .lapak-title{font-size:1.25rem;}
  .lapak-header-icon{width:44px;height:44px;font-size:1.15rem;border-radius:12px;}
  .lapak-filter-field{min-width:140px;}
}
@media(max-width:575px){
  .lapak-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .lapak-header{gap:12px;margin-bottom:18px;padding-bottom:14px;}
  .lapak-title{font-size:1.1rem;}
  .lapak-header-icon{width:40px;height:40px;font-size:1rem;border-radius:10px;}
  .lapak-filter{padding:12px 14px;border-radius:10px;}
  .lapak-filter-inner{gap:8px;}
  .lapak-filter-field{min-width:100%;flex-basis:100%;}
  .lapak-btn-cari,.lapak-btn-reset{padding:10px 16px;font-size:.85rem;flex:1;}
  .lapak-card{border-radius:10px;}
  .lapak-card-body{padding:12px;}
  .lapak-card-title{font-size:.85rem;}
  .price-now{font-size:.95rem;}
  .lapak-card-footer{padding:0 12px 12px;}
  .lapak-btn-wa{padding:9px 12px;font-size:.8rem;border-radius:8px;}
  .lapak-btn-lokasi{width:38px;height:38px;border-radius:8px;}
  /* Modal responsive */
  .lapak-modal{width:95%;max-width:none;border-radius:12px;}
  .lapak-modal-header{padding:14px 16px;}
  .lapak-modal-title{font-size:1rem;}
  .lapak-modal-body{padding:14px 16px 16px;}
}

/* ========== MOBILE MENU ACTIVE STATE ========== */
.mobile-menu-list li.mob-active > a{
  color:var(--primary);
  font-weight:700;
  background:var(--primary-50);
  border-radius:var(--radius);
}

/* ========== STATISTIK / DATA STATISTIK ========== */

/* Layout */
.stat-layout{
  display:flex;
  gap:28px;
  align-items:flex-start;
}
.stat-sidebar{
  width:300px;
  flex-shrink:0;
  position:sticky;
  top:80px;
}
.stat-main{
  flex:1;
  min-width:0;
  background:var(--white);
  border-radius:var(--radius-xl);
  padding:28px;
  box-shadow:var(--shadow-sm);
  border:1px solid var(--border);
}

/* --- Sidenav Box --- */
.stat-nav-box{
  background:var(--white);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  border:1px solid var(--border);
}
.stat-nav-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:16px 20px;
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%);
  color:var(--white);
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:700;
}
.stat-nav-header i{font-size:1rem;opacity:.85}
.stat-nav-body{padding:8px 0}

/* Accordion groups */
.stat-nav-group{border-bottom:1px solid var(--border)}
.stat-nav-group:last-child{border-bottom:none}
.stat-nav-group-btn{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:14px 18px;
  background:transparent;
  border:none;
  cursor:pointer;
  font-family:var(--font-heading);
  font-size:.88rem;
  font-weight:600;
  color:var(--text-heading);
  transition:all .2s;
  text-align:left;
}
.stat-nav-group-btn:hover{
  background:var(--primary-50);
  color:var(--primary);
}
.stat-nav-group.is-open .stat-nav-group-btn{
  color:var(--primary);
  background:var(--primary-50);
}
.stat-nav-group-icon{
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  border-radius:8px;
  background:var(--primary-50);
  color:var(--primary);
  font-size:.8rem;
  flex-shrink:0;
  transition:all .2s;
}
.stat-nav-group.is-open .stat-nav-group-icon{
  background:var(--primary);
  color:var(--white);
}
.stat-nav-group-label{flex:1}
.stat-nav-arrow{
  font-size:10px;
  color:var(--text-muted);
  transition:transform .25s ease;
  margin-left:auto;
}
.stat-nav-group.is-open .stat-nav-arrow{
  transform:rotate(180deg);
  color:var(--primary);
}

/* Sub links */
.stat-nav-sub{
  display:none;
  list-style:none;
  margin:0;
  padding:0 12px 10px 12px;
}
.stat-nav-sub li a{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 14px;
  font-size:.84rem;
  color:var(--text-body);
  border-radius:var(--radius);
  transition:all .2s;
  text-decoration:none;
}
.stat-nav-sub li a i{
  font-size:9px;
  color:var(--gray-400);
  transition:all .2s;
}
.stat-nav-sub li a:hover{
  background:var(--primary-50);
  color:var(--primary);
  padding-left:18px;
}
.stat-nav-sub li a:hover i{color:var(--primary)}
.stat-nav-sub li a.active{
  background:var(--primary);
  color:var(--white);
  font-weight:600;
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.2);
}
.stat-nav-sub li a.active i{color:var(--white)}

/* --- Page Title --- */
.stat-page-title{
  margin-bottom:20px;
  padding-bottom:16px;
  border-bottom:2px solid var(--primary-50);
}
.stat-page-title h1{
  font-family:var(--font-heading);
  font-size:1.5rem;
  font-weight:800;
  color:var(--text-heading);
  margin:0;
}

/* --- Year Filter --- */
.stat-filter-bar{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
  padding:12px 18px;
  background:var(--primary-50);
  border-radius:var(--radius-lg);
  border:1px solid rgba(var(--primary-rgb),.1);
}
.stat-filter-bar label{
  font-size:.85rem;
  font-weight:600;
  color:var(--primary-dark);
  display:flex;align-items:center;gap:6px;
  white-space:nowrap;
}
.stat-filter-select{
  padding:8px 36px 8px 14px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  font-size:.85rem;
  font-family:var(--font-body);
  color:var(--text-body);
  background:var(--white);
  outline:none;
  cursor:pointer;
  appearance:auto;
  min-width:140px;
}
.stat-filter-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1);
}

/* --- Chart Section --- */
.stat-chart-section{
  margin-bottom:28px;
  background:var(--gray-50);
  border-radius:var(--radius-lg);
  padding:20px;
  border:1px solid var(--border);
}
.stat-chart-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:16px;
}
.stat-chart-header h2{
  font-family:var(--font-heading);
  font-size:1.1rem;
  font-weight:700;
  color:var(--text-heading);
  display:flex;align-items:center;gap:8px;
  margin:0;
}
.stat-chart-header h2 i{color:var(--primary);font-size:.95rem}
.stat-chart-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.stat-chart-btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:8px 16px;
  font-size:.8rem;
  font-weight:600;
  font-family:var(--font-heading);
  border:1.5px solid var(--border);
  border-radius:var(--radius-full);
  background:var(--white);
  color:var(--text-body);
  cursor:pointer;
  transition:all .2s;
  text-decoration:none;
  white-space:nowrap;
}
.stat-chart-btn:hover{
  border-color:var(--primary);
  color:var(--primary);
}
/* Switch btn active */
.stat-switch-btn.active{
  background:var(--primary);
  color:var(--white);
  border-color:var(--primary);
  box-shadow:0 2px 8px rgba(var(--primary-rgb),.2);
}
.stat-chart-btn-accent{
  background:var(--accent);
  color:var(--dark);
  border-color:var(--accent);
}
.stat-chart-btn-accent:hover{
  background:var(--accent-dark);
  color:#fff;
  border-color:var(--accent-dark);
}
.stat-chart-btn-outline{
  background:var(--white);
  border-color:var(--border);
}
.stat-chart-btn-outline:hover{
  background:var(--primary-50);
  border-color:var(--primary);
  color:var(--primary);
}
.stat-chart-wrap{
  min-height:300px;
  border-radius:var(--radius);
  overflow:hidden;
}

/* --- Table Section --- */
.stat-table-section{
  margin-bottom:20px;
}
.stat-table-header{
  margin-bottom:14px;
}
.stat-table-header h2{
  font-family:var(--font-heading);
  font-size:1.1rem;
  font-weight:700;
  color:var(--text-heading);
  display:flex;align-items:center;gap:8px;
  margin:0;
}
.stat-table-header h2 i{color:var(--primary);font-size:.9rem}
.stat-table-wrap{
  overflow-x:auto;
  border-radius:var(--radius-lg);
  border:1px solid var(--border);
}
.stat-table{
  width:100%;
  border-collapse:collapse;
  font-size:.84rem;
}
.stat-table thead th{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary-darker));
  color:#fff;
  padding:10px 14px;
  font-weight:600;
  font-size:.8rem;
  text-align:center;
  border:1px solid rgba(255,255,255,.12);
  white-space:nowrap;
}
.stat-table tbody td{
  padding:9px 14px;
  border:1px solid var(--border);
  font-size:.83rem;
}
.stat-table tbody tr:nth-child(even){background:var(--gray-50)}
.stat-table tbody tr:hover{background:var(--primary-50)}
.stat-table tbody tr.more{display:none}
.stat-table .text-center{text-align:center}
.stat-table .text-left{text-align:left}
.stat-table .text-right{text-align:right}
.stat-update-info{
  font-size:.78rem;
  color:var(--text-muted);
  margin:10px 14px 0;
  padding:8px 0;
  display:flex;align-items:center;gap:5px;
}
.stat-update-info i{color:var(--primary);font-size:.7rem}
.stat-table-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
}

/* --- Statistik Responsive --- */
@media(max-width:991px){
  .stat-layout{flex-direction:column-reverse;gap:20px}
  .stat-sidebar{width:100%;position:static}
  .stat-main{padding:20px}
}
@media(max-width:767px){
  .stat-main{padding:16px}
  .stat-chart-header{flex-direction:column;align-items:flex-start;gap:10px}
  .stat-chart-actions{width:100%}
  .stat-chart-btn{padding:7px 12px;font-size:.78rem}
  .stat-page-title h1{font-size:1.25rem}
  .stat-filter-bar{flex-direction:column;align-items:flex-start;gap:8px}
  .stat-filter-select{width:100%}
}
@media(max-width:479px){
  .stat-main{padding:14px;border-radius:var(--radius-lg)}
  .stat-chart-section{padding:14px}
  .stat-chart-actions{gap:4px;flex-wrap:wrap}
  .stat-chart-btn{padding:6px 10px;font-size:.75rem;gap:3px}
  .stat-table{font-size:.78rem}
  .stat-table thead th{padding:8px 8px;font-size:.75rem}
  .stat-table tbody td{padding:7px 8px}
  .stat-table-actions{flex-direction:column;gap:8px}
  .stat-table-actions .stat-chart-btn{width:100%;justify-content:center}
}

/* ========== 404 ERROR PAGE ========== */
.err404-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:520px;
  padding:60px 24px 80px;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(47,133,90,.06) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(96,165,250,.06) 0%, transparent 50%),
    linear-gradient(180deg, rgba(47,133,90,.02) 0%, var(--white) 100%);
}
.err404-shapes{
  position:absolute;inset:0;pointer-events:none;overflow:hidden;
}
.err404-shape{position:absolute;border-radius:50%;opacity:.07}
.err404-shape-1{width:300px;height:300px;background:var(--primary);top:-80px;right:-60px;animation:err404Float 8s ease-in-out infinite}
.err404-shape-2{width:180px;height:180px;background:var(--accent);bottom:-40px;left:-30px;animation:err404Float 6s ease-in-out 1s infinite reverse}
.err404-shape-3{width:80px;height:80px;background:var(--primary);top:30%;left:8%;animation:err404Float 7s ease-in-out 2s infinite}
.err404-shape-4{width:50px;height:50px;background:var(--accent);top:20%;right:12%;border-radius:12px;transform:rotate(45deg);animation:err404Float 5s ease-in-out .5s infinite reverse}
.err404-shape-5{width:120px;height:120px;background:var(--primary-dark);bottom:10%;right:5%;animation:err404Float 9s ease-in-out 3s infinite}
@keyframes err404Float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-20px) scale(1.05)}}
.err404-content{
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  text-align:center;max-width:560px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) both;
}
@keyframes err404FadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.err404-number-wrap{display:flex;align-items:center;gap:4px;margin-bottom:20px;user-select:none}
.err404-digit{
  font-family:'Plus Jakarta Sans',sans-serif;font-size:8rem;font-weight:900;line-height:1;
  background:var(--gradient-boja);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:err404DigitPulse 3s ease-in-out infinite;
}
.err404-digit-1{animation-delay:0s}.err404-digit-2{animation-delay:.3s}
@keyframes err404DigitPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.err404-digit-icon{
  display:flex;align-items:center;justify-content:center;width:96px;height:96px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:50%;
  box-shadow:0 8px 32px rgba(47,133,90,.25),0 0 0 6px rgba(47,133,90,.1),0 0 0 12px rgba(47,133,90,.05);
  margin:0 6px;position:relative;
}
.err404-compass{display:flex;align-items:center;justify-content:center;color:var(--white);font-size:2.5rem;animation:err404Spin 4s linear infinite}
@keyframes err404Spin{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}
.err404-subtitle{display:flex;align-items:center;gap:16px;margin-bottom:16px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .2s both}
.err404-line{width:50px;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);border-radius:2px}
.err404-subtitle-text{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.35rem;font-weight:700;color:var(--primary-darker);letter-spacing:-.02em}
.err404-desc{font-size:.95rem;line-height:1.7;color:var(--text-muted);max-width:440px;margin:0 0 32px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .35s both}
.err404-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:28px;animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .5s both}
.err404-btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:50px;
  font-family:'Plus Jakarta Sans',sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;
  transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;border:none;outline:none;
  position:relative;overflow:hidden;
}
.err404-btn::before{content:'';position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .3s}
.err404-btn:hover::before{opacity:1}
.err404-btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--white);box-shadow:0 4px 16px rgba(47,133,90,.25)}
.err404-btn-primary::before{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%)}
.err404-btn-primary:hover{color:var(--white);box-shadow:0 6px 24px rgba(47,133,90,.35);transform:translateY(-2px)}
.err404-btn-primary i{font-size:1rem}
.err404-btn-outline{background:var(--white);color:var(--primary);border:2px solid rgba(47,133,90,.2);padding:10px 26px}
.err404-btn-outline::before{background:rgba(47,133,90,.05)}
.err404-btn-outline:hover{color:var(--primary-dark);border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px rgba(47,133,90,.12)}
.err404-hint{
  display:inline-flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,rgba(96,165,250,.08) 0%,rgba(47,133,90,.06) 100%);
  border:1px solid rgba(96,165,250,.15);border-radius:14px;padding:12px 22px;
  animation:err404FadeUp .8s cubic-bezier(.4,0,.2,1) .65s both;
}
.err404-hint i{color:var(--accent);font-size:1.1rem;flex-shrink:0}
.err404-hint span{font-size:.82rem;color:var(--text-muted);line-height:1.5}
@media(max-width:767px){
  .err404-wrap{min-height:420px;padding:40px 16px 60px}
  .err404-digit{font-size:5.5rem}
  .err404-digit-icon{width:68px;height:68px}
  .err404-compass{font-size:1.8rem}
  .err404-subtitle-text{font-size:1.1rem}
  .err404-line{width:30px}
  .err404-desc{font-size:.88rem}
  .err404-actions{gap:10px}
  .err404-btn{padding:10px 22px;font-size:.85rem}
  .err404-btn-outline{padding:8px 20px}
  .err404-shape-1{width:180px;height:180px}
  .err404-shape-2{width:120px;height:120px}
}
@media(max-width:479px){
  .err404-wrap{min-height:380px;padding:30px 12px 50px}
  .err404-digit{font-size:4rem}
  .err404-digit-icon{width:52px;height:52px;margin:0 2px}
  .err404-compass{font-size:1.4rem}
  .err404-subtitle{gap:10px;margin-bottom:12px}
  .err404-subtitle-text{font-size:.95rem}
  .err404-line{width:20px}
  .err404-desc{font-size:.82rem;margin-bottom:24px}
  .err404-actions{flex-direction:column;gap:8px;width:100%}
  .err404-btn{width:100%;justify-content:center;padding:11px 20px}
  .err404-btn-outline{width:100%;justify-content:center;padding:9px 18px}
  .err404-hint{padding:10px 16px}
  .err404-hint span{font-size:.78rem}
}

/* ========== ARSIP ARTIKEL ========== */
.arsip-header{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 60%,var(--primary-darker) 100%);
  border-radius:16px;
  padding:32px 28px 28px;
  margin-bottom:24px;
  position:relative;
  overflow:hidden;
  color:#fff;
}
.arsip-header::before{
  content:'';
  position:absolute;
  top:-30px;right:-30px;
  width:160px;height:160px;
  background:rgba(255,255,255,.06);
  border-radius:50%;
  pointer-events:none;
}
.arsip-header::after{
  content:'';
  position:absolute;
  bottom:-20px;left:40px;
  width:80px;height:80px;
  background:rgba(255,255,255,.04);
  border-radius:50%;
  pointer-events:none;
}
.arsip-header-text{position:relative;z-index:1}
.arsip-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.6rem;
  font-weight:800;
  color:#fff;
  margin:0 0 6px;
  display:flex;
  align-items:center;
  gap:10px;
}
.arsip-title i{
  font-size:1.3rem;
  opacity:.85;
}
.arsip-subtitle{
  font-size:.88rem;
  color:rgba(255,255,255,.78);
  margin:0;
}

/* Arsip Table */
.arsip-table-wrap{
  background:#fff;
  border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;
  margin-bottom:28px;
}
.arsip-table-inner{
  padding:20px;
}
.arsip-table-wrap table.dataTable{
  border-collapse:collapse;
  width:100%!important;
}
.arsip-table-wrap table.dataTable thead th,
.arsip-table-wrap table.dataTable thead td{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;
  font-size:.82rem;
  padding:12px 14px;
  border:none;
  text-transform:uppercase;
  letter-spacing:.3px;
  white-space:nowrap;
}
.arsip-table-wrap table.dataTable thead th:first-child{
  border-radius:10px 0 0 0;
}
.arsip-table-wrap table.dataTable thead th:last-child{
  border-radius:0 10px 0 0;
}
.arsip-table-wrap table.dataTable tbody td{
  padding:11px 14px;
  font-size:.84rem;
  color:#374151;
  border-bottom:1px solid #f0f0f0;
  vertical-align:middle;
}
.arsip-table-wrap table.dataTable tbody tr:hover td{
  background:#f7faf8;
}
.arsip-table-wrap table.dataTable tbody td a{
  color:var(--primary);
  font-weight:600;
  text-decoration:none;
  transition:color .2s;
}
.arsip-table-wrap table.dataTable tbody td a:hover{
  color:var(--primary-darker);
  text-decoration:underline;
}
/* DataTables controls */
.arsip-table-wrap .dataTables_wrapper{
  padding:0;
}
.arsip-table-wrap .dataTables_filter{
  margin-bottom:14px;
}
.arsip-table-wrap .dataTables_filter input{
  border:2px solid var(--border);
  border-radius:10px;
  padding:8px 14px;
  font-size:.84rem;
  transition:border-color .2s;
  outline:none;
}
.arsip-table-wrap .dataTables_filter input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(47,133,90,.1);
}
.arsip-table-wrap .dataTables_length select{
  border:2px solid var(--border);
  border-radius:8px;
  padding:6px 10px;
  font-size:.84rem;
}
.arsip-table-wrap .dataTables_info{
  font-size:.8rem;
  color:#6b7280;
  padding:12px 0 4px;
}
.arsip-table-wrap .dataTables_paginate{
  padding:8px 0 4px;
}
.arsip-table-wrap .dataTables_paginate .paginate_button{
  padding:6px 12px;
  border-radius:8px;
  font-size:.82rem;
  margin:0 2px;
  border:1px solid #e5e7eb!important;
  background:#fff!important;
  color:#374151!important;
  transition:all .2s;
}
.arsip-table-wrap .dataTables_paginate .paginate_button:hover{
  background:var(--primary-light)!important;
  color:var(--primary)!important;
  border-color:var(--primary)!important;
}
.arsip-table-wrap .dataTables_paginate .paginate_button.current{
  background:var(--primary)!important;
  color:#fff!important;
  border-color:var(--primary)!important;
  font-weight:700;
}
.arsip-table-wrap .dataTables_paginate .paginate_button.disabled{
  opacity:.4;
  cursor:not-allowed;
}
/* read count badge */
.arsip-read-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:#EFF6FF;
  color:var(--primary);
  font-weight:700;
  font-size:.78rem;
  padding:3px 10px;
  border-radius:20px;
}
.arsip-read-badge i{
  font-size:.7rem;
}
/* author badge */
.arsip-author{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:.82rem;
  color:#4b5563;
}
.arsip-author i{
  color:var(--primary);
  font-size:.7rem;
}
/* date format */
.arsip-date{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:.82rem;
  color:#6b7280;
  white-space:nowrap;
}
.arsip-date i{
  color:var(--primary);
  font-size:.7rem;
}
/* section divider for widgets */
.arsip-widget-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:8px 0 24px;
}
.arsip-widget-divider-line{
  flex:1;
  height:2px;
  background:linear-gradient(90deg,var(--primary-light),transparent);
  border-radius:2px;
}
.arsip-widget-divider-icon{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:var(--primary-light);
  color:var(--primary);
  border-radius:50%;
  font-size:.85rem;
}
/* Responsive Arsip */
@media(max-width:767px){
  .arsip-header{padding:24px 20px 20px;border-radius:12px;margin-bottom:18px}
  .arsip-title{font-size:1.3rem}
  .arsip-subtitle{font-size:.82rem}
  .arsip-table-inner{padding:14px}
  .arsip-table-wrap table.dataTable thead th,
  .arsip-table-wrap table.dataTable thead td{padding:10px 10px;font-size:.76rem}
  .arsip-table-wrap table.dataTable tbody td{padding:9px 10px;font-size:.8rem}
}
@media(max-width:575px){
  .arsip-header{padding:18px 16px 16px;border-radius:10px}
  .arsip-title{font-size:1.15rem;gap:8px}
  .arsip-title i{font-size:1.05rem}
  .arsip-table-inner{padding:10px}
  .arsip-table-wrap{border-radius:10px}
  .arsip-table-wrap table.dataTable thead th:first-child{border-radius:8px 0 0 0}
  .arsip-table-wrap table.dataTable thead th:last-child{border-radius:0 8px 0 0}
}

/* ========== INVENTARIS & PRODUK HUKUM ========== */
/* Shared boja page header â€” reusable for multiple pages */
.boja-page-header{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 60%,var(--primary-darker) 100%);
  border-radius:16px;
  padding:32px 28px 28px;
  margin-bottom:24px;
  position:relative;
  overflow:hidden;
  color:#fff;
}
.boja-page-header::before{
  content:'';position:absolute;top:-30px;right:-30px;
  width:160px;height:160px;
  background:rgba(255,255,255,.06);border-radius:50%;pointer-events:none;
}
.boja-page-header::after{
  content:'';position:absolute;bottom:-20px;left:40px;
  width:80px;height:80px;
  background:rgba(255,255,255,.04);border-radius:50%;pointer-events:none;
}
.boja-page-header-text{position:relative;z-index:1}
.boja-page-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.6rem;font-weight:800;color:#fff;
  margin:0 0 6px;display:flex;align-items:center;gap:10px;
}
.boja-page-title i{font-size:1.3rem;opacity:.85}
.boja-page-subtitle{font-size:.88rem;color:rgba(255,255,255,.78);margin:0}

/* Shared boja table card */
.boja-table-wrap{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;margin-bottom:24px;
}
.boja-table-inner{padding:20px;overflow-x:auto}
.boja-table-wrap table.dataTable{border-collapse:collapse;width:100%!important}
.boja-table-wrap table.dataTable thead th,
.boja-table-wrap table.dataTable thead td{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.78rem;padding:11px 12px;
  border:none;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;
  text-align:center;
}
.boja-table-wrap table.dataTable thead th:first-child{border-radius:10px 0 0 0}
.boja-table-wrap table.dataTable thead th:last-child{border-radius:0 10px 0 0}
/* multi-row header fix */
.boja-table-wrap table.dataTable thead tr:not(:first-child) th{border-radius:0}
.boja-table-wrap table.dataTable thead tr:not(:first-child) th:first-child{border-radius:0}
.boja-table-wrap table.dataTable thead tr:not(:first-child) th:last-child{border-radius:0}
.boja-table-wrap table.dataTable tbody td{
  padding:10px 12px;font-size:.82rem;color:#374151;
  border-bottom:1px solid #f0f0f0;vertical-align:middle;
}
.boja-table-wrap table.dataTable tbody tr:hover td{background:#f7faf8}
.boja-table-wrap table.dataTable tbody td a{
  color:var(--primary);font-weight:600;text-decoration:none;transition:color .2s;
}
.boja-table-wrap table.dataTable tbody td a:hover{color:var(--primary-darker);text-decoration:underline}
.boja-table-wrap table.dataTable tfoot th{
  background:#f7faf8;font-size:.82rem;font-weight:700;
  color:var(--primary-darker);padding:11px 12px;
  border-top:2px solid var(--primary-light);
}
/* DataTables controls */
.boja-table-wrap .dataTables_wrapper{padding:0}
.boja-table-wrap .dataTables_filter{margin-bottom:14px}
.boja-table-wrap .dataTables_filter input{
  border:2px solid var(--border);border-radius:10px;
  padding:8px 14px;font-size:.84rem;transition:border-color .2s;outline:none;
}
.boja-table-wrap .dataTables_filter input:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(47,133,90,.1);
}
.boja-table-wrap .dataTables_length select{
  border:2px solid var(--border);border-radius:8px;padding:6px 10px;font-size:.84rem;
}
.boja-table-wrap .dataTables_info{font-size:.8rem;color:#6b7280;padding:12px 0 4px}
.boja-table-wrap .dataTables_paginate{padding:8px 0 4px}
.boja-table-wrap .dataTables_paginate .paginate_button{
  padding:6px 12px;border-radius:8px;font-size:.82rem;margin:0 2px;
  border:1px solid #e5e7eb!important;background:#fff!important;
  color:#374151!important;transition:all .2s;
}
.boja-table-wrap .dataTables_paginate .paginate_button:hover{
  background:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--primary)!important;
}
.boja-table-wrap .dataTables_paginate .paginate_button.current{
  background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;font-weight:700;
}
.boja-table-wrap .dataTables_paginate .paginate_button.disabled{opacity:.4;cursor:not-allowed}

/* Inventaris: summary cards grid */
.inv-summary-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:14px;margin-bottom:24px;
}
.inv-summary-card{
  background:#fff;border-radius:12px;padding:16px 18px;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
  display:flex;align-items:center;gap:12px;
  border-left:4px solid var(--primary);
  transition:transform .2s,box-shadow .2s;
}
.inv-summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.inv-summary-icon{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  background:var(--primary-light);color:var(--primary);border-radius:10px;
  font-size:1rem;flex-shrink:0;
}
.inv-summary-info{flex:1;min-width:0}
.inv-summary-label{font-size:.72rem;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;font-weight:600}
.inv-summary-value{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15rem;font-weight:800;color:var(--primary-darker);margin-top:2px;
}

/* Inventaris: aksi button */
.inv-btn-detail{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 14px;border-radius:8px;font-size:.78rem;font-weight:600;
  background:var(--primary-light);color:var(--primary);
  border:1px solid transparent;text-decoration:none;
  transition:all .2s;white-space:nowrap;
}
.inv-btn-detail:hover{
  background:var(--primary);color:#fff;border-color:var(--primary);
}
.inv-btn-detail i{font-size:.7rem}

/* Produk Hukum: filter bar */
.prodhuk-filter-bar{
  display:flex;flex-wrap:wrap;gap:16px;
  margin-bottom:24px;
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  padding:20px;
}
.prodhuk-filter-group{flex:1;min-width:180px}
.prodhuk-filter-label{
  display:flex;align-items:center;gap:6px;
  font-size:.78rem;font-weight:700;color:var(--primary-darker);
  text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.prodhuk-filter-label i{font-size:.75rem;color:var(--primary)}
select.prodhuk-filter-select{
  width:100%;padding:10px 14px;
  border:2px solid var(--border);border-radius:10px;
  font-size:.84rem;color:#374151;background:#fff;
  transition:border-color .2s;outline:none;
  appearance:auto;
}
.prodhuk-filter-bar select.prodhuk-filter-select:focus{
  border-color:var(--primary);box-shadow:0 0 0 3px rgba(47,133,90,.1);
}

/* Produk Hukum: action badge */
.prodhuk-btn-view{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 16px;border-radius:8px;font-size:.78rem;font-weight:600;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;border:none;cursor:pointer;
  transition:all .2s;white-space:nowrap;
}
.prodhuk-btn-view:hover{box-shadow:0 3px 10px rgba(47,133,90,.3);transform:translateY(-1px)}
.prodhuk-btn-view i{font-size:.72rem}

/* Badge for tahun/kategori */
.prodhuk-badge-tahun{
  display:inline-flex;align-items:center;gap:4px;
  background:#EFF6FF;color:var(--primary);
  font-weight:700;font-size:.78rem;
  padding:3px 10px;border-radius:20px;
}
.prodhuk-badge-kategori{
  display:inline-flex;align-items:center;gap:4px;
  background:#eff6ff;color:#1e40af;
  font-weight:600;font-size:.78rem;
  padding:3px 10px;border-radius:20px;
}

/* Responsive */
@media(max-width:767px){
  .boja-page-header{padding:24px 20px 20px;border-radius:12px;margin-bottom:18px}
  .boja-page-title{font-size:1.3rem}
  .boja-page-subtitle{font-size:.82rem}
  .boja-table-inner{padding:14px}
  .boja-table-wrap table.dataTable thead th,
  .boja-table-wrap table.dataTable thead td{padding:9px 8px;font-size:.72rem}
  .boja-table-wrap table.dataTable tbody td{padding:8px 8px;font-size:.78rem}
  .inv-summary-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .prodhuk-filter-bar{padding:14px;gap:12px}
  .prodhuk-filter-group{min-width:140px}
}
@media(max-width:575px){
  .boja-page-header{padding:18px 16px 16px;border-radius:10px}
  .boja-page-title{font-size:1.15rem;gap:8px}
  .boja-page-title i{font-size:1.05rem}
  .boja-table-inner{padding:10px}
  .boja-table-wrap{border-radius:10px}
  .boja-table-wrap table.dataTable thead th:first-child{border-radius:8px 0 0 0}
  .boja-table-wrap table.dataTable thead th:last-child{border-radius:0 8px 0 0}
  .inv-summary-grid{grid-template-columns:1fr 1fr}
  .inv-summary-card{padding:12px 14px}
  .inv-summary-value{font-size:1rem}
  .prodhuk-filter-bar{flex-direction:column;gap:10px}
  .prodhuk-filter-group{min-width:100%}
}

/* ========== DATA SUPLEMEN ========== */
.suplemen-detail-card{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  overflow:hidden;margin-bottom:24px;
}
.suplemen-detail-title{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.88rem;
  padding:14px 20px;
  display:flex;align-items:center;gap:8px;
}
.suplemen-detail-title i{font-size:.82rem;opacity:.85}
.suplemen-detail-body{padding:20px}
.suplemen-detail-row{
  display:flex;align-items:flex-start;
  padding:12px 0;
  border-bottom:1px solid #f0f0f0;
}
.suplemen-detail-row:last-child{border-bottom:none}
.suplemen-detail-label{
  width:160px;flex-shrink:0;
  font-size:.82rem;font-weight:700;
  color:var(--primary-darker);
  text-transform:uppercase;letter-spacing:.3px;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.suplemen-detail-value{
  flex:1;font-size:.88rem;color:#374151;
  font-weight:500;
}
.suplemen-table-title{
  background:linear-gradient(135deg,rgba(47,133,90,.06),rgba(47,133,90,.02));
  color:var(--primary-darker);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.88rem;
  padding:14px 20px;
  display:flex;align-items:center;gap:8px;
  border-bottom:2px solid var(--primary-light);
}
.suplemen-table-title i{font-size:.82rem;color:var(--primary)}

/* Responsive suplemen */
@media(max-width:767px){
  .suplemen-detail-row{flex-direction:column;gap:4px;padding:10px 0}
  .suplemen-detail-label{width:auto}
  .suplemen-detail-body{padding:14px}
  .suplemen-table-title{padding:12px 14px;font-size:.82rem}
}
@media(max-width:575px){
  .suplemen-detail-card{border-radius:10px}
  .suplemen-detail-title{padding:12px 14px;font-size:.82rem}
  .suplemen-detail-body{padding:12px}
  .suplemen-detail-label{font-size:.76rem}
  .suplemen-detail-value{font-size:.82rem}
}

/* ========== INFORMASI PUBLIK ========== */
.infopub-btn-lihat{
  display:inline-flex;align-items:center;gap:5px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;border:none;border-radius:8px;
  padding:6px 14px;font-size:.78rem;font-weight:600;
  font-family:'Plus Jakarta Sans',sans-serif;
  cursor:pointer;transition:all .25s ease;
  text-decoration:none;white-space:nowrap;
}
.infopub-btn-lihat:hover{
  background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-darker) 100%);
  transform:translateY(-1px);box-shadow:0 3px 10px rgba(47,133,90,.25);
  color:#fff;text-decoration:none;
}
.infopub-btn-lihat i{font-size:.72rem}

/* ========== KELOMPOK / LEMBAGA DETAIL ========== */
.kel-detail-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  margin-bottom:24px;overflow:hidden;
}
.kel-detail-body{
  display:flex;gap:28px;padding:24px;
  align-items:flex-start;
}
.kel-detail-info{flex:1;min-width:0}
.kel-detail-row{
  display:flex;align-items:baseline;
  padding:10px 0;
  border-bottom:1px solid #f1f5f9;
  gap:12px;
}
.kel-detail-row:last-child{border-bottom:none}
.kel-detail-label{
  width:180px;flex-shrink:0;
  font-size:.82rem;font-weight:600;color:#475569;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.kel-detail-value{
  flex:1;font-size:.88rem;color:#1e293b;
  font-weight:500;word-break:break-word;
}
.kel-detail-logo{
  width:160px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:#f8fafc;border-radius:12px;
  border:1px solid #e2e8f0;padding:16px;
}
.kel-detail-logo img{
  max-width:100%;max-height:140px;
  object-fit:contain;border-radius:6px;
}
.kel-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.kel-section-title i{font-size:.84rem;color:var(--primary)}

/* Responsive kelompok/lembaga */
@media(max-width:767px){
  .kel-detail-body{flex-direction:column-reverse;gap:16px;padding:16px}
  .kel-detail-logo{width:100%;max-width:180px;margin:0 auto}
  .kel-detail-row{flex-direction:column;gap:3px;padding:8px 0}
  .kel-detail-label{width:auto;font-size:.78rem}
  .kel-detail-value{font-size:.82rem}
  .kel-section-title{padding:14px 16px;font-size:.86rem}
}
@media(max-width:575px){
  .kel-detail-card{border-radius:10px}
  .kel-detail-body{padding:12px}
  .kel-detail-label{font-size:.76rem}
  .kel-detail-value{font-size:.8rem}
  .kel-detail-logo{max-width:140px;padding:12px}
  .kel-section-title{padding:12px 14px;font-size:.82rem}
}

/* ========== ANALISIS ========== */
.analisis-control-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  margin-bottom:24px;overflow:hidden;
}
.analisis-control-header{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.analisis-control-header i{font-size:.84rem;color:var(--primary)}
.analisis-control-body{padding:20px 22px}
.analisis-select-wrap{
  display:flex;align-items:center;gap:12px;
  margin-bottom:18px;flex-wrap:wrap;
}
.analisis-select-label{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:600;font-size:.84rem;color:#475569;
  white-space:nowrap;
}
.analisis-select{
  flex:1;min-width:200px;max-width:480px;
  padding:9px 14px;border:1.5px solid #d1d5db;border-radius:10px;
  font-size:.84rem;color:#1e293b;
  font-family:'Nunito',sans-serif;
  background:#fff;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.analisis-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(47,133,90,.12);
}
.analisis-meta{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
}
.analisis-meta-item{
  display:flex;flex-direction:column;gap:4px;
  padding:12px 16px;border-radius:10px;
  background:linear-gradient(135deg,#EFF6FF 0%,#f8fafc 100%);
  border:1px solid #e2e8f0;
}
.analisis-meta-label{
  font-size:.76rem;font-weight:600;color:#64748b;
  font-family:'Plus Jakarta Sans',sans-serif;
  display:flex;align-items:center;gap:6px;
  text-transform:uppercase;letter-spacing:.3px;
}
.analisis-meta-label i{color:var(--primary);font-size:.7rem}
.analisis-meta-value{
  font-size:.92rem;font-weight:700;color:#1e293b;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.analisis-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.analisis-section-title i{font-size:.84rem;color:var(--primary)}
.analisis-indikator-link{
  color:var(--primary-dark);font-weight:600;
  text-decoration:none;transition:color .2s;
  display:inline-flex;align-items:center;gap:6px;
}
.analisis-indikator-link i{font-size:.72rem;opacity:.7}
.analisis-indikator-link:hover{color:var(--primary-darker);text-decoration:underline}

/* Analisis Chart Card */
.analisis-chart-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  margin-bottom:24px;overflow:hidden;
}
.analisis-chart-header{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.analisis-chart-header i{font-size:.84rem;color:var(--primary)}
.analisis-chart-body{padding:20px}

/* Responsive analisis */
@media(max-width:767px){
  .analisis-meta{grid-template-columns:1fr}
  .analisis-control-body{padding:14px 16px}
  .analisis-select{max-width:100%}
  .analisis-section-title{padding:14px 16px;font-size:.86rem}
  .analisis-chart-body{padding:14px}
}
@media(max-width:575px){
  .analisis-control-card{border-radius:10px}
  .analisis-control-header{padding:12px 14px;font-size:.84rem}
  .analisis-meta-item{padding:10px 12px}
  .analisis-meta-label{font-size:.72rem}
  .analisis-meta-value{font-size:.84rem}
  .analisis-chart-card{border-radius:10px}
}

/* ========== IDM ========== */
.idm-error-card{
  background:#fef2f2;border:1px solid #fecaca;border-radius:12px;
  padding:32px;text-align:center;color:#dc2626;
  margin-bottom:24px;
}
.idm-error-card i{font-size:1.6rem;margin-bottom:8px;display:block}
.idm-error-card p{font-size:.88rem;font-weight:600;margin:0}

/* Skor Cards */
.idm-skor-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:16px;margin-bottom:24px;
}
.idm-skor-card{
  border-radius:14px;padding:20px 18px;
  display:flex;align-items:center;gap:16px;
  color:#fff;position:relative;overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,.1);
}
.idm-skor-card::after{
  content:'';position:absolute;right:-20px;top:-20px;
  width:80px;height:80px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.idm-skor-icon{
  width:48px;height:48px;border-radius:12px;
  background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;flex-shrink:0;
}
.idm-skor-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.idm-skor-number{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;font-size:1.15rem;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.idm-skor-label{
  font-size:.72rem;font-weight:500;opacity:.85;
  text-transform:uppercase;letter-spacing:.3px;
}
.idm-skor-blue{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%)}
.idm-skor-amber{background:linear-gradient(135deg,#d97706 0%,#b45309 100%)}
.idm-skor-green{background:linear-gradient(135deg,#059669 0%,#047857 100%)}
.idm-skor-red{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%)}

/* IDM Overview Row */
.idm-overview-row{
  display:grid;grid-template-columns:1fr 1fr;
  gap:20px;margin-bottom:24px;
}
.idm-identitas-card,.idm-chart-card{
  background:#fff;border-radius:14px;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  overflow:hidden;
}
.idm-identitas-header,.idm-chart-header{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.88rem;color:var(--primary-darker);
  padding:14px 20px;display:flex;align-items:center;gap:8px;
  border-bottom:2px solid var(--primary-light);
}
.idm-identitas-header i,.idm-chart-header i{font-size:.8rem;color:var(--primary)}
.idm-identitas-body{padding:6px 20px 16px}
.idm-identitas-row{
  display:flex;align-items:baseline;gap:12px;
  padding:10px 0;border-bottom:1px solid #f1f5f9;
}
.idm-identitas-row:last-child{border-bottom:none}
.idm-identitas-label{
  width:120px;flex-shrink:0;
  font-size:.8rem;font-weight:600;color:#64748b;
  font-family:'Plus Jakarta Sans',sans-serif;
  text-transform:uppercase;letter-spacing:.3px;
}
.idm-identitas-value{
  flex:1;font-size:.88rem;font-weight:600;color:#1e293b;
  text-transform:capitalize;
}
.idm-chart-body{padding:16px}
.idm-section-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.92rem;color:var(--primary-darker);
  padding:16px 22px;display:flex;align-items:center;gap:10px;
  border-bottom:2px solid var(--primary-light);
}
.idm-section-title i{font-size:.84rem;color:var(--primary)}

/* Responsive IDM */
@media(max-width:991px){
  .idm-skor-grid{grid-template-columns:repeat(2,1fr)}
  .idm-overview-row{grid-template-columns:1fr}
}
@media(max-width:767px){
  .idm-skor-card{padding:16px 14px;gap:12px}
  .idm-skor-icon{width:40px;height:40px;font-size:1rem;border-radius:10px}
  .idm-skor-number{font-size:1rem}
  .idm-skor-label{font-size:.68rem}
  .idm-identitas-header,.idm-chart-header{padding:12px 16px;font-size:.84rem}
  .idm-identitas-body{padding:4px 16px 12px}
  .idm-identitas-row{gap:8px;padding:8px 0}
  .idm-identitas-label{width:100px;font-size:.76rem}
  .idm-identitas-value{font-size:.82rem}
  .idm-chart-body{padding:12px}
  .idm-section-title{padding:14px 16px;font-size:.86rem}
}
@media(max-width:575px){
  .footer-bottom-inner{flex-direction:column;text-align:center}
  .info-desa-ticker-badge{padding:8px 12px;font-size:.65rem}
  .idm-skor-grid{grid-template-columns:1fr 1fr;gap:10px}
  .idm-skor-card{padding:14px 12px;border-radius:10px;gap:10px}
  .idm-skor-icon{width:36px;height:36px;font-size:.9rem;border-radius:8px}
  .idm-skor-number{font-size:.92rem}
  .idm-identitas-card,.idm-chart-card{border-radius:10px}
  .idm-identitas-label{width:90px;font-size:.72rem}
  .idm-identitas-value{font-size:.78rem}
}

/* ========== PRINT ========== */
@media print{
  .navbar-boja,.mobile-panel,.hero-boja,.ticker-bar,.qa-ticker,.info-desa-ticker,.category-bar-boja,.footer-boja,.back-to-top,.sidebar-boja,.share-buttons,.sticky-share,.section-fullwidth,.section-quick-access{display:none!important}
  body{background:#fff;font-size:12pt}
  .box{box-shadow:none;border:1px solid #ddd}
  .layout-main{flex-direction:column}.sidebar-area{display:none}
}
