:root{
  --paper:#EEEBDD;
  --paper-line:#e2ddc9;
  --ink:#1F2A22;
  --ink-soft:#4b5a4d;
  --green-deep:#123524;
  --green-mid:#1B4B34;
  --brass:#96703E;
  --brass-soft:#c9a877;
  --oxide:#8C3A2B;
  --card:#F7F4E9;
  --shadow:0 8px 22px rgba(18,53,36,0.12);
  --radius:14px;
}
*{ box-sizing:border-box; }
body{
  margin:0;
  font-family:'Hind Siliguri', sans-serif;
  background:var(--paper);
  color:var(--ink);
}
.display{ font-family:'Tiro Bangla', serif; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

/* ---------- Navbar ---------- */
.navbar{
  background:linear-gradient(120deg, var(--green-deep), var(--green-mid));
  color:#EFEAD6;
  position:sticky; top:0; z-index:10;
  box-shadow:var(--shadow);
}
.navbar-inner{
  max-width:1080px; margin:0 auto; padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
}
.brand{ font-family:'Tiro Bangla',serif; font-size:1.25rem; display:flex; align-items:center; gap:8px; }
.brand-logo{ width:34px; height:34px; object-fit:contain; border-radius:6px; background:#fff; padding:2px; }
.nav-links{ display:flex; gap:16px; flex-wrap:wrap; font-size:0.88rem; }
.nav-links a{ opacity:0.9; padding:4px 2px; }
.nav-links a:hover, .nav-links a.active{ opacity:1; border-bottom:2px solid var(--brass-soft); }
.nav-cta{ background:var(--brass); color:#3a2b0d; padding:7px 16px; border-radius:8px; font-weight:700; font-size:0.85rem; }
.nav-cta:hover{ background:#7d5c30; color:#fff; }

/* ---------- Hero ---------- */
.hero{
  background:linear-gradient(160deg, var(--green-deep), var(--green-mid) 70%);
  color:#EFEAD6; padding:56px 20px; text-align:center;
  position:relative; overflow:hidden;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 90% 10%, rgba(201,168,119,0.18), transparent 45%);
}
.hero h1{ font-family:'Tiro Bangla',serif; font-size:2rem; margin:0 0 10px; position:relative; }
.hero p{ font-size:1.05rem; color:#cfe0d0; max-width:560px; margin:0 auto; position:relative; }
.hero .cta-row{ margin-top:22px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; position:relative; }

/* ---------- Layout ---------- */
.container{ max-width:1080px; margin:0 auto; padding:36px 20px 60px; }
.page-head{ margin-bottom:24px; text-align:center; }
.page-head h1{ font-family:'Tiro Bangla',serif; font-size:1.7rem; color:var(--green-deep); margin:0 0 6px; }
.page-head p{ color:var(--ink-soft); margin:0; }

.card{
  background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:22px 24px; margin-bottom:20px; border:1px solid var(--paper-line);
}
.card h2{ font-family:'Tiro Bangla',serif; color:var(--green-deep); font-size:1.2rem; margin:0 0 14px; }
.prose p{ margin:0 0 12px; line-height:1.7; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-block; padding:10px 22px; border-radius:8px; border:none; cursor:pointer;
  font-family:'Hind Siliguri'; font-weight:700; font-size:0.9rem;
  background:var(--brass); color:#3a2b0d; transition:transform .1s, background .15s;
}
.btn:hover{ background:#7d5c30; color:#fff; }
.btn.outline{ background:transparent; border:2px solid #cfe0d0; color:#EFEAD6; }
.btn.outline:hover{ background:rgba(255,255,255,0.12); }
.btn.small{ padding:6px 14px; font-size:0.8rem; }
.btn.danger{ background:var(--oxide); color:#fff; }
.btn.danger:hover{ background:#722c20; }
.btn.ghost{ background:transparent; border:1px solid var(--paper-line); color:var(--ink-soft); }

/* ---------- Grids ---------- */
.stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin-bottom:10px; }
.stat-card{ background:var(--card); border:1px solid var(--paper-line); border-radius:10px; padding:16px; text-align:center; }
.stat-card .label{ font-size:0.78rem; color:var(--ink-soft); font-weight:600; }
.stat-card .value{ font-family:'Tiro Bangla',serif; font-size:1.5rem; color:var(--green-deep); margin-top:6px; }

.committee-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.committee-card{ background:var(--card); border:1px solid var(--paper-line); border-radius:10px; padding:16px; text-align:center; }
.committee-card .avatar{
  width:64px; height:64px; border-radius:50%; margin:0 auto 10px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(150deg, var(--brass-soft), var(--brass)); color:#3a2b0d; font-family:'Tiro Bangla',serif; font-size:1.3rem;
}
.committee-card .name{ font-weight:700; }
.committee-card .pos{ color:var(--brass); font-size:0.85rem; margin-top:2px; }
.committee-card .phone{ color:var(--ink-soft); font-size:0.8rem; margin-top:6px; }

.notice-card{
  position:relative; background:var(--card); border:1px solid var(--paper-line); border-radius:4px 10px 10px 4px;
  padding:16px 18px 16px 22px; margin-bottom:12px; box-shadow:var(--shadow);
}
.notice-card::before{ content:""; position:absolute; left:0; top:14px; bottom:14px; width:6px; background:var(--brass); border-radius:3px; }
.notice-card .title{ font-weight:700; font-size:1.02rem; }
.notice-card .date{ color:var(--ink-soft); font-size:0.8rem; margin-top:2px; }
.notice-card .detail{ margin-top:8px; font-size:0.9rem; }

.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; }
.gallery-item{ border-radius:10px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--paper-line); background:var(--card); }
.gallery-item img{ width:100%; height:150px; object-fit:cover; }
.gallery-item .caption{ padding:8px 10px; font-size:0.8rem; color:var(--ink-soft); }

.contact-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; }
.contact-item .label{ font-size:0.78rem; color:var(--ink-soft); font-weight:700; }
.contact-item .value{ font-size:1rem; margin-top:2px; }

/* ---------- Forms (admin) ---------- */
label{ display:block; font-size:0.8rem; font-weight:600; color:var(--ink-soft); margin-bottom:4px; }
.field{ margin-bottom:14px; }
input[type=text], input[type=password], input[type=number], input[type=date], input[type=email], input[type=file], input[type=url], textarea, select{
  width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--paper-line);
  font-family:'Hind Siliguri'; font-size:0.95rem; background:#fdfcf6; color:var(--ink);
}
textarea{ min-height:110px; resize:vertical; }
input:focus, select:focus, textarea:focus{ outline:2px solid var(--brass-soft); outline-offset:1px; border-color:var(--brass); }

.alert{ padding:12px 16px; border-radius:8px; margin-bottom:18px; font-size:0.9rem; }
.alert-success{ background:#e4f3e8; color:#245134; border:1px solid #b9dcc4; }
.alert-error{ background:#fbe7e4; color:#7a2c20; border:1px solid #f0c1b8; }

.table-wrap{ overflow-x:auto; }
table{ width:100%; border-collapse:collapse; }
thead th{ text-align:right; font-size:0.76rem; color:var(--ink-soft); padding:8px; border-bottom:2px solid var(--brass-soft); }
thead th:first-child, tbody td:first-child{ text-align:right; }
tbody td{ padding:9px 8px; border-bottom:1px dashed var(--paper-line); font-size:0.88rem; }

.admin-menu{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px; }
.admin-menu a{ background:var(--card); border:1px solid var(--paper-line); padding:8px 14px; border-radius:8px; font-size:0.85rem; font-weight:600; }
.admin-menu a.active{ background:var(--green-deep); color:#EFEAD6; }

.empty{ text-align:center; padding:34px 10px; color:var(--ink-soft); }
.muted{ color:var(--ink-soft); font-size:0.85rem; }
.center-box{ max-width:420px; margin:50px auto; }

.site-footer{ background:var(--green-deep); color:#cfe0d0; text-align:center; padding:26px 16px; font-size:0.85rem; }
.site-footer a{ text-decoration:underline; }

@media (max-width:600px){
  .container{ padding:24px 14px 50px; }
  .card{ padding:16px; }
  .hero{ padding:40px 16px; }
  .hero h1{ font-size:1.5rem; }
}
