:root {
  --green: #0f3d32;
  --green-2: #1a5c4a;
  --cream: #f4f6f5;
  --ink: #1a1f1c;
  --muted: #5f6b66;
  --maroon: #8b3a3a;
  --gold: #b0893a;
  --card: #ffffff;
  --line: #e4eae6;
  --shadow: 0 1px 2px rgba(15, 61, 50, 0.06);
  --radius: 10px;
}
html { height: 100%; }
body {
  font-family: "Hind Siliguri", "Noto Sans Bengali", sans-serif;
  color: var(--ink);
  background: var(--cream);
}
a { color: var(--green); text-decoration: none; }
a:hover { text-decoration: underline; }

body.site {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.site-main { flex: 1 0 auto; }
.site-header {
  background: #fff;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 1030;
}
.site-header .navbar { padding: .55rem 0; }
.navbar-brand { font-weight: 700; color: var(--green) !important; line-height: 1.15; }
.navbar-brand small {
  display: block;
  font-size: .72rem;
  font-weight: 400;
  color: var(--muted);
}
.navbar-brand:hover { text-decoration: none; }
.brand-mark {
  width: 36px; height: 36px;
  background: var(--green);
  color: #fff;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
.site-header .nav-link {
  color: var(--ink) !important;
  font-size: .92rem;
  padding: .4rem .7rem !important;
}
.site-header .nav-link.active {
  color: var(--green) !important;
  font-weight: 600;
}
.site-header .nav-link:hover { text-decoration: none; color: var(--green) !important; }

.home-slider .slide-panel {
  min-height: 460px;
  height: min(68vh, 560px);
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #0e3329;
}
.slide-panel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.slide-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(8, 24, 20, .72) 0%, rgba(8, 24, 20, .38) 52%, rgba(8, 24, 20, .18) 100%);
}
.slide-copy { position: relative; z-index: 1; color: #fff; padding: 4.2rem 0 5.2rem; max-width: 760px; }
.slide-kicker { letter-spacing: .04em; opacity: .8; margin-bottom: .4rem; }
.slide-copy h1 { font-weight: 700; font-size: clamp(1.6rem, 4vw, 2.5rem); margin-bottom: .6rem; }
.slide-copy h1 a { color: #fff; }
.slide-copy h1 a:hover { text-decoration: underline; }
.slide-sub { font-size: 1.05rem; opacity: .9; max-width: 36rem; }
.home-slider .carousel-control-prev,
.home-slider .carousel-control-next { width: 6%; }

.home-actions { margin-top: -1.4rem; position: relative; z-index: 2; }
.action-bar {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  box-shadow: var(--shadow);
}
.action-bar a {
  text-align: center;
  padding: .95rem .5rem;
  color: var(--green);
  font-weight: 600;
  border-right: 1px solid var(--line);
}
.action-bar a:last-child { border-right: 0; }
.action-bar a:hover { background: #f3f7f5; text-decoration: none; }

.stat-card, .card-soft {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.stat-card { padding: 1rem .75rem; text-align: center; color: inherit; }
.stat-card:hover { border-color: #c5d5cd; text-decoration: none; }
.stat-card .num { font-size: 1.45rem; font-weight: 700; color: var(--green); }
.stat-label { font-size: .82rem; color: var(--muted); }
.card-soft h3, .card-soft h2, .card-soft strong { color: var(--ink); }
.card-soft a.d-block:hover { text-decoration: none; border-color: #c5d5cd; }

.btn-primary, .btn-success { background: var(--green); border-color: var(--green); }
.btn-primary:hover, .btn-success:hover { background: var(--green-2); border-color: var(--green-2); }
.btn-accent { background: var(--maroon); color: #fff; border: 0; }
.btn-accent:hover { color: #fff; background: #732f2f; }
.btn-lg-touch { min-height: 48px; font-size: 1.05rem; border-radius: 10px; }
.badge-cat { background: #e8f0ec; color: var(--green); }
.section-title { font-weight: 700; color: var(--green); font-size: 1.25rem; }
.more-link { font-weight: 600; font-size: .92rem; }

.page-head {
  background: #fff;
  border-bottom: 1px solid var(--line);
  padding: 2rem 0 1.4rem;
}
.page-head h1 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--green);
  margin: 0;
}
.crumb { font-size: .85rem; color: var(--muted); margin-bottom: .35rem; }
.lead-text { color: var(--muted); margin: .5rem 0 0; max-width: 640px; }
.prose p { line-height: 1.8; color: #2b332f; }
.prose h2 { font-size: 1.15rem; color: var(--green); margin-top: 1.6rem; }
.related li { margin-bottom: .45rem; }
.person-fallback {
  width: 72px; height: 72px; margin: 0 auto;
  border-radius: 50%;
  background: #e8f0ec;
  color: var(--green);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; font-weight: 700;
}
.is-advisor { background: #fafbfa; }
.map-embed iframe { width: 100%; min-height: 240px; border: 0; border-radius: var(--radius); }

.site-footer {
  background: #0f2a22;
  color: #c5d4ce;
  padding: 2.4rem 0 1.8rem;
  margin-top: auto;
}
.site-footer a { color: #e8efe9; }
.footer-name { color: #fff; font-weight: 600; margin-bottom: .5rem; }
.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
}
.footer-links li { margin-bottom: .3rem; break-inside: avoid; }
.copy { opacity: .75; font-size: .9rem; }

.hero {
  background: linear-gradient(120deg, #14382e 0%, #1b4d3e 55%, #2d6a4f 100%);
  color: #fff;
  padding: 3.5rem 0 3rem;
  border-radius: 0 0 28px 28px;
}
.hero h1 { font-weight: 700; font-size: clamp(1.6rem, 4vw, 2.6rem); }
.tagline { color: var(--gold); font-size: 1.15rem; letter-spacing: .02em; }

.admin-sidebar {
  background: #12291f;
  min-height: 100vh;
  width: 260px;
}
.admin-sidebar a {
  color: #d7e6df;
  text-decoration: none;
  display: block;
  padding: .4rem .9rem;
  border-radius: 8px;
  font-size: .95rem;
}
.admin-sidebar a:hover, .admin-sidebar a.active { background: #1b4d3e; color: #fff; text-decoration: none; }
.admin-sidebar .nav-group { color: #c4a35a; font-size: .75rem; padding: .8rem .9rem .2rem; text-transform: none; }
.topbar { background: #fff; border-bottom: 1px solid var(--line); }
.table thead th { background: #eef4f0; color: var(--green); }
.mark-yes { color: #2d6a4f; font-weight: 700; }
.mark-no { color: #8b3a3a; font-weight: 700; }
.quick-btn { min-height: 54px; border-radius: 12px; font-weight: 600; }
.values-row { background: #fff; border-radius: var(--radius); }
.values-row h6 { color: var(--green); }
.form-control, .form-select { min-height: 44px; }
.notice-urgent { border-left: 3px solid var(--maroon); }
.notice-meeting { border-left: 3px solid #2c6e9e; }
.notice-election { border-left: 3px solid var(--green); }
.id-card {
  width: 86mm; height: 54mm; border: 1px solid #ccc; border-radius: 10px;
  padding: 8px; background: #fff; position: relative; overflow: hidden;
}
.gallery-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  height: 100%;
  margin: 0;
}
.gallery-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}
.gallery-card figcaption { padding: .75rem .85rem 1rem; }
.site-header .dropdown-menu { border-color: var(--line); font-size: .92rem; }
.site-header .dropdown-item.active { background: #eef4f0; color: var(--green); }

@media (max-width: 991px) {
  .admin-sidebar { min-height: auto; width: 100%; }
  .hero { padding: 2rem 0; }
  .home-slider .slide-panel { min-height: 280px; height: min(52vh, 420px); }
  .action-bar { grid-template-columns: 1fr 1fr; }
  .action-bar a:nth-child(odd) { border-bottom: 1px solid var(--line); }
  .action-bar a:nth-child(2) { border-right: 0; }
  .footer-links { columns: 1; }
}
@media print {
  .no-print { display: none !important; }
  body { background: #fff; }
}
