/* ABD Foundation advanced dynamic theme */
:root {
  --abd-green: #0d8a63;
  --abd-green-2: #14b982;
  --abd-dark-green: #073f3a;
  --abd-ink: #102a2a;
  --abd-muted: #687b78;
  --abd-soft: #eef8f2;
  --abd-soft-2: #f7fbf8;
  --abd-warning: #f7b731;
  --abd-white: #ffffff;
  --abd-border: rgba(16,42,42,.10);
  --abd-shadow: 0 18px 55px rgba(12, 84, 75, .10);
  --abd-shadow-strong: 0 28px 90px rgba(7, 63, 58, .22);
  --abd-gradient: linear-gradient(135deg, #064840 0%, #0f8c66 55%, #34c88e 100%);
  --abd-gradient-soft: linear-gradient(180deg, #ffffff 0%, #f0faf4 100%);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--abd-ink);
  background: #fff;
  font-family: "SolaimanLipi", "Noto Sans Bengali", "Bangla", "Hind Siliguri", Arial, sans-serif;
  line-height: 1.72;
  text-rendering: optimizeLegibility;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; }
::selection { background: rgba(20,185,130,.22); }
.btn { font-weight: 800; }
.btn-success { background: var(--abd-green); border-color: var(--abd-green); }
.btn-success:hover { background: #08764f; border-color: #08764f; transform: translateY(-1px); }
.btn-outline-success { color: var(--abd-green); border-color: rgba(13,138,99,.36); }
.btn-outline-success:hover, .btn-outline-success.active { background: var(--abd-green); border-color: var(--abd-green); color: #fff; }
.form-control, .form-select { border-radius: 16px; border-color: rgba(16,42,42,.13); padding: 12px 14px; }
.form-control:focus, .form-select:focus { border-color: rgba(13,138,99,.55); box-shadow: 0 0 0 .22rem rgba(13,138,99,.13); }
.app-navbar { background: rgba(255,255,255,.88); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(16,42,42,.07); box-shadow: 0 10px 40px rgba(16,42,42,.06); }
.brand-logo { width: 200px !important; height: 54px; object-fit: contain; }
.navbar-brand strong { display:block; color: var(--abd-dark-green); line-height: 1.1; font-weight: 900; }
.navbar-brand small { display:block; color: var(--abd-muted); font-size: 12px; }
.navbar .nav-link { color: var(--abd-ink); font-weight: 800; margin: 0 4px; border-radius: 999px; padding: 8px 13px !important; }
.navbar .nav-link:hover, .navbar .nav-link.active { background: var(--abd-soft); color: var(--abd-green); }
.nav-search { max-width: 220px; }
.flash-container { position: fixed; top: 86px; left: 0; right: 0; z-index: 1040; pointer-events: none; }
.flash-container .alert { pointer-events: auto; box-shadow: var(--abd-shadow); border-radius: 16px; }
.hero-section { position: relative; overflow: hidden; padding: 165px 0 115px; background: radial-gradient(circle at 16% 20%, rgba(255,255,255,.18), transparent 34%), var(--abd-gradient); color: #fff; }
.hero-section::after { content:""; position:absolute; inset:auto -10% -40% -10%; height: 270px; background: rgba(255,255,255,.12); border-radius: 50% 50% 0 0; filter: blur(1px); }
.hero-kicker, .section-tag { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; color: var(--abd-green); background: rgba(13,138,99,.10); font-weight: 900; letter-spacing: .2px; }
.hero-kicker { color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.18); }
.hero-title { font-size: clamp(42px, 6vw, 78px); line-height: 1.05; font-weight: 950; margin-top: 18px; }
.hero-subtitle { max-width: 780px; color: rgba(255,255,255,.86); font-size: 20px; }
.hero-card { position: relative; padding: 14px; border-radius: 34px; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.22); box-shadow: var(--abd-shadow-strong); }
.hero-card img { width: 100%; min-height: 390px; object-fit: cover; object-position: center; border-radius: 26px; }
.floating-card { position: absolute; left: -22px; bottom: 30px; background: #fff; border-radius: 22px; color: var(--abd-ink); padding: 16px 18px; display: flex; flex-direction: column; min-width: 200px; box-shadow: 0 16px 45px rgba(0,0,0,.16); }
.floating-card span { color: var(--abd-green); font-weight: 900; }
.hero-actions .btn { box-shadow: 0 12px 35px rgba(0,0,0,.08); }
.quick-actions { margin-top: -58px; position: relative; z-index: 5; }
.action-card { background: #fff; border-radius: 24px; border: 1px solid var(--abd-border); padding: 22px; height: 100%; box-shadow: var(--abd-shadow); display: flex; gap: 16px; align-items: flex-start; transition: .25s ease; }
.action-card:hover { transform: translateY(-5px); border-color: rgba(13,138,99,.28); }
.action-icon { width: 54px; height: 54px; flex: 0 0 54px; border-radius: 18px; display: grid; place-items: center; font-size: 26px; background: var(--abd-soft); }
.action-card h5 { font-weight: 900; margin: 0 0 4px; }
.action-card p { color: var(--abd-muted); margin: 0; font-size: 14px; }
.stats-section { margin-top: -35px; position: relative; z-index: 3; }
.stat-card, .mini-card, .program-card, .project-card, .leader-card, .value-card, .form-card, .info-panel, .panel, .admin-card, .notice-card, .faq-card, .testimonial-card, .impact-card { background: #fff; border: 1px solid var(--abd-border); border-radius: 26px; box-shadow: var(--abd-shadow); }
.stat-card { padding: 24px; text-align: center; height: 100%; }
.stat-value { display: block; color: var(--abd-green); font-weight: 950; font-size: 38px; line-height: 1.1; }
.stat-card small { color: var(--abd-muted); display:block; }
.section-padding { padding: 88px 0; }
.bg-soft { background: var(--abd-soft-2); }
.section-title { font-size: clamp(30px, 4vw, 48px); font-weight: 950; margin-top: 12px; line-height: 1.18; color: var(--abd-dark-green); }
.section-lead { color: var(--abd-muted); font-size: 18px; max-width: 760px; }
.mini-card { padding: 22px; height: 100%; }
.mini-card strong { color: var(--abd-green); display: block; margin-bottom: 8px; }
.mini-card p { margin: 0; color: var(--abd-muted); }
.video-style-card { position: relative; border-radius: 30px; overflow: hidden; box-shadow: var(--abd-shadow); }
.video-style-card img { width: 100%; min-height: 360px; object-fit: cover; object-position: top; }
.play-btn { position: absolute; right: 24px; bottom: 24px; width: 64px; height: 64px; border-radius: 50%; background: var(--abd-gradient); color: #fff; display: grid; place-items: center; font-size: 28px; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.program-card { padding: 28px; transition: .25s ease; border-top: 4px solid transparent; position: relative; overflow: hidden; }
.program-card::after { content:""; position:absolute; right:-45px; top:-45px; width:120px; height:120px; background: rgba(13,138,99,.07); border-radius: 50%; }
.program-card:hover { transform: translateY(-6px); border-top-color: var(--abd-green); }
.program-icon { width: 62px; height: 62px; border-radius: 20px; display: grid; place-items:center; font-size: 30px; background: var(--abd-soft); margin-bottom: 18px; }
.program-card h5, .program-card h4 { font-weight: 950; color: var(--abd-dark-green); }
.program-card p { color: var(--abd-muted); }
.program-card.detailed { min-height: 330px; }
.filter-pills { display: flex; gap: 10px; flex-wrap: wrap; }
.project-card { overflow: hidden; height: 100%; transition: .25s ease; }
.project-card:hover { transform: translateY(-5px); }
.project-card img { width: 100%; height: 250px; object-fit: cover; object-position: top; display: block; }
.project-body { padding: 24px; }
.project-body span, .chip { color: var(--abd-green); font-weight: 900; background: var(--abd-soft); border-radius: 999px; padding: 6px 12px; display: inline-block; font-size: 13px; }
.project-body h5 { font-weight: 950; margin: 14px 0 10px; color: var(--abd-dark-green); }
.project-body p { color: var(--abd-muted); }
.impact-card { padding: 24px; height: 100%; position: relative; overflow: hidden; }
.impact-card .icon { font-size: 30px; width: 58px; height: 58px; background: var(--abd-soft); border-radius: 18px; display:grid; place-items:center; }
.impact-card strong { font-size: 34px; color: var(--abd-green); font-weight: 950; display: block; }
.progress-wrap { background: #fff; border-radius: 28px; padding: 28px; box-shadow: var(--abd-shadow); border: 1px solid var(--abd-border); }
.progress { height: 14px; border-radius: 999px; background: #e6efeb; }
.progress-bar { background: var(--abd-gradient); }
.cta-section { padding: 82px 0; background: var(--abd-gradient); color: #fff; position: relative; overflow: hidden; }
.cta-section h2 { font-weight: 950; }
.page-hero { padding: 145px 0 72px; color: #fff; background: radial-gradient(circle at 20% 10%, rgba(255,255,255,.18), transparent 28%), var(--abd-gradient); }
.page-hero.compact h1 { font-weight: 950; font-size: clamp(34px, 4vw, 56px); }
.breadcrumb-soft { color: rgba(255,255,255,.76); }
.timeline { border-left: 3px solid var(--abd-green); padding-left: 22px; }
.timeline-item { margin: 0 0 22px; position: relative; }
.timeline-item::before { content:""; position: absolute; left: -31px; top: 5px; width: 15px; height: 15px; background: var(--abd-green); border-radius: 50%; border: 3px solid #fff; }
.timeline-item strong { display: block; font-size: 18px; color: var(--abd-dark-green); }
.timeline-item span { color: var(--abd-muted); }
.info-panel { padding: 32px; background: var(--abd-gradient-soft); }
.info-panel h4, .info-panel h3 { color: var(--abd-dark-green); font-weight: 950; }
.value-card { padding: 28px; height: 100%; }
.value-card h5 { font-weight: 950; color: var(--abd-dark-green); }
.search-strip { background: #fff; padding: 14px; border-radius: 22px; box-shadow: var(--abd-shadow); border: 1px solid var(--abd-border); }
.leader-card { padding: 26px; text-align: center; height: 100%; transition: .25s ease; }
.leader-card:hover { transform: translateY(-4px); }
.leader-card img, .leader-placeholder { width: 150px; height: 150px; border-radius: 32px; object-fit: cover; margin: 0 auto 18px; border: 5px solid var(--abd-soft); }
.leader-placeholder { display: grid; place-items: center; font-size: 54px; font-weight: 950; color: #fff; background: var(--abd-gradient); }
.leader-card h5 { font-weight: 950; }
.leader-card span { display: inline-block; color: var(--abd-green); font-weight: 900; margin-bottom: 10px; }
.leader-card p { color: var(--abd-muted); }
.gallery-filter { display: flex; gap: 10px; flex-wrap: wrap; }
.gallery-card { display: block; background: #fff; border-radius: 24px; overflow: hidden; box-shadow: var(--abd-shadow); color: var(--abd-ink); height: 100%; }
.gallery-card img { width: 100%; height: 300px; object-fit: cover; object-position: top; transition: .25s ease; }
.gallery-card:hover img { transform: scale(1.04); }
.gallery-card span { display: block; padding: 14px; font-weight: 900; }
.notice-card { padding: 24px; height: 100%; }
.notice-date { color: var(--abd-muted); font-weight: 800; }
.notice-card h5 { color: var(--abd-dark-green); font-weight: 950; margin: 12px 0 10px; }
.faq-card { overflow: hidden; }
.accordion-button { font-weight: 900; color: var(--abd-dark-green); }
.accordion-button:not(.collapsed) { background: var(--abd-soft); color: var(--abd-green); box-shadow: none; }
.testimonial-card { padding: 28px; height: 100%; }
.testimonial-card blockquote { color: var(--abd-muted); font-size: 18px; margin: 0 0 18px; }
.form-card { padding: 32px; }
.amount-chip { border: 1px solid rgba(13,138,99,.28); color: var(--abd-green); background: var(--abd-soft); border-radius: 999px; padding: 8px 14px; font-weight: 900; cursor: pointer; }
.amount-chip:hover { background: var(--abd-green); color: #fff; }
.site-footer { background: #062f2c; }
.footer-logo { width: 120px; max-height: 70px; object-fit: contain; filter: brightness(0) invert(1); }
.footer-text { color: rgba(255,255,255,.72); }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links a { color: rgba(255,255,255,.72); display: block; padding: 5px 0; }
.footer-links a:hover { color: #fff; }
.footer-line { border-color: rgba(255,255,255,.18); }
.back-to-top { position: fixed; right: 20px; bottom: 20px; width: 44px; height: 44px; border-radius: 50%; display: none; place-items: center; z-index: 1030; box-shadow: var(--abd-shadow); }
.back-to-top.show { display: grid; }
.login-body { min-height: 100vh; display: grid; place-items: center; background: var(--abd-gradient); padding: 20px; }
.login-card { background: #fff; width: min(450px, 100%); padding: 36px; border-radius: 28px; box-shadow: var(--abd-shadow-strong); }
.login-logo { width: 140px; display:block; margin: 0 auto 16px; }
.admin-body { background: #f4f8f6; }
.admin-shell { min-height: 100vh; display: flex; }
.admin-sidebar { width: 292px; background: #062f2c; color: #fff; padding: 26px; position: fixed; top:0; bottom:0; left:0; overflow-y:auto; }
.admin-sidebar p { color: rgba(255,255,255,.65); }
.admin-sidebar nav a { color: rgba(255,255,255,.78); display: block; padding: 11px 14px; border-radius: 14px; margin: 5px 0; font-weight: 800; }
.admin-sidebar nav a:hover, .admin-sidebar nav a.active { background: rgba(255,255,255,.1); color:#fff; }
.admin-main { margin-left: 292px; width: calc(100% - 292px); }
.admin-title { font-weight: 950; margin-bottom: 24px; color: var(--abd-dark-green); }
.admin-card { padding: 24px; }
.admin-card span { color: var(--abd-muted); display: block; font-weight: 800; }
.admin-card strong { font-size: 34px; color: var(--abd-green); font-weight: 950; }
.panel { padding: 24px; }
.table { vertical-align: middle; }
.badge-soft { background: var(--abd-soft); color: var(--abd-green); border-radius: 999px; padding: 7px 11px; }
@media (max-width: 991px) {
  .hero-section { padding-top: 122px; }
  .hero-card img { min-height: 280px; }
  .floating-card { left: 16px; }
  .quick-actions { margin-top: 24px; }
  .admin-sidebar { position: static; width: 100%; }
  .admin-shell { display:block; }
  .admin-main { margin-left:0; width:100%; }
  .nav-search { max-width: 100%; margin-top: 12px; }
}
@media (max-width: 576px) {
  .section-padding { padding: 60px 0; }
  .hero-title { font-size: 38px; }
  .stat-value { font-size: 30px; }
  .form-card, .info-panel, .panel { padding: 22px; }
}

/* Added dynamic upload, map, footer and homepage circle refinements */
.hero-circle-card { position: relative; display: grid; place-items: center; min-height: 430px; }
.hero-circle-wrap { width: min(450px, 100%); aspect-ratio: 1 / 1; display: grid; place-items: center; border-radius: 50%; filter: drop-shadow(0 28px 70px rgba(0,0,0,.22)); }
.hero-circle-wrap img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; will-change: transform; }
.hero-circle-wrap:hover img { animation: abd-spin-once .9s ease-in-out 1; }
.circle-floating-card { left: 0; bottom: 12px; }
@keyframes abd-spin-once { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.two-column-links { columns: 2; column-gap: 28px; }
.upload-hint { color: var(--abd-muted); font-size: 13px; margin-top: 6px; }
.payment-extra { display: none; padding: 18px; border: 1px dashed rgba(13,138,99,.35); border-radius: 18px; background: rgba(13,138,99,.05); }
.payment-extra.active { display: block; }
.file-link { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: var(--abd-soft); color: var(--abd-green); font-weight: 800; }
.map-panel { overflow: hidden; border-radius: 28px; border: 1px solid var(--abd-border); box-shadow: var(--abd-shadow); background: #fff; }
.map-panel iframe { display: block; width: 100%; min-height: 360px; border: 0; }
.admin-thumb { width: 74px; height: 58px; object-fit: cover; border-radius: 12px; border: 1px solid var(--abd-border); }
@media (max-width: 991px) {
  .hero-circle-card { min-height: 310px; }
  .hero-circle-wrap { width: min(330px, 100%); }
  .circle-floating-card { left: 16px; }
}
@media (max-width: 576px) {
  .two-column-links { columns: 1; }
}


/* Responsive + admin UX refinements added */
.brand-text { min-width: 0; }
.video-style-card { color: inherit; }
.video-style-card:focus-visible { outline: 4px solid rgba(247,183,49,.65); outline-offset: 4px; }
.admin-setting-preview { width: 100%; height: 120px; object-fit: contain; border-radius: 16px; border: 1px solid var(--abd-border); background: #f8fbf9; padding: 10px; }
.setting-value-cell { max-width: 520px; word-break: break-word; }
.table-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.admin-sidebar nav { display: grid; gap: 2px; }
@media (max-width: 1199px) {
  .navbar .nav-link { padding: 8px 10px !important; margin: 0 1px; }
  .brand-logo { width: 48px; height: 48px; }
}
@media (max-width: 991px) {
  .navbar-collapse { padding-top: 16px; }
  .navbar-nav { align-items: stretch !important; gap: 6px; }
  .navbar .nav-link, .navbar .btn { display: block; text-align: center; }
  .hero-section { padding: 126px 0 72px; text-align: center; }
  .hero-subtitle { margin-left: auto; margin-right: auto; }
  .hero-actions { justify-content: center; }
  .stats-section { margin-top: 0; padding-top: 18px; }
  .admin-sidebar { position: sticky; top: 0; z-index: 1040; max-height: none; border-bottom: 1px solid rgba(255,255,255,.14); }
  .admin-sidebar nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-sidebar nav a { text-align: center; font-size: 14px; }
  .admin-main .container-fluid { padding-left: 14px; padding-right: 14px; }
}
@media (max-width: 767px) {
  .hero-title { font-size: 34px; }
  .hero-subtitle { font-size: 16px; }
  .hero-actions .btn { width: 100%; }
  .quick-actions .action-card { padding: 18px; }
  .project-card img, .gallery-card img { height: 220px; }
  .table-responsive table { min-width: 760px; }
  .footer-logo { width: 96px; }
}
@media (max-width: 420px) {
  .navbar-brand { max-width: calc(100% - 62px); }
  .brand-logo { width: 150px; height: 42px; }
  .navbar-brand strong { font-size: 15px; }
  .navbar-brand small { font-size: 10px; white-space: normal; }
  .admin-sidebar nav { grid-template-columns: 1fr; }
  .login-card { padding: 24px; }
}

/* Header logo-only and right-side action buttons */
.brand-logo-only { padding: 0; }
.brand-logo-only .brand-logo { width: 200px; height: 72px; object-fit: contain; }
.nav-actions .btn { white-space: nowrap; font-size: 14px; }
@media (max-width: 1199px) {
  .brand-logo-only .brand-logo { width: 150px; height: 62px; }
  .nav-actions .btn { padding-left: 14px !important; padding-right: 14px !important; }
}
@media (max-width: 991px) {
  .nav-actions { margin-top: 12px; align-items: stretch !important; }
  .nav-actions .btn { width: 100%; text-align: center; }
}
@media (max-width: 420px) {
  .brand-logo-only .brand-logo { width: 120px; height: 52px; }
}

/* 2026 responsive logo, mobile footer columns, font and speed refinements */
html, body, input, textarea, select, button { font-family: "SolaimanLipi", "Noto Sans Bengali", "Hind Siliguri", "Bangla", Arial, sans-serif; }
.app-navbar .container { gap: 14px; }
.brand-logo-only { min-width: 0; flex: 0 0 auto; }
.brand-logo-only .brand-logo,
.brand-logo { width: clamp(230px, 18vw, 320px) !important; height: clamp(58px, 5vw, 82px) !important; object-fit: contain; object-position: left center; }
.navbar .nav-link { font-size: 15px; }
.nav-search { max-width: 205px; }
.footer-links.two-column-links { columns: 2; column-gap: 26px; }
.footer-links.two-column-links li { break-inside: avoid; page-break-inside: avoid; }
img { height: auto; }
.project-card img, .gallery-card img, .video-style-card img { content-visibility: auto; }
@media (max-width: 1399px) {
  .brand-logo-only .brand-logo,
  .brand-logo { width: clamp(210px, 16vw, 280px) !important; height: 68px !important; }
  .navbar .nav-link { padding: 8px 9px !important; font-size: 14px; }
  .nav-actions .btn { padding-left: 12px !important; padding-right: 12px !important; }
}
@media (max-width: 1199px) {
  .brand-logo-only .brand-logo,
  .brand-logo { width: 230px !important; height: 64px !important; }
  .nav-search { max-width: 180px; }
}
@media (max-width: 991px) {
  .brand-logo-only .brand-logo,
  .brand-logo { width: 240px !important; height: 66px !important; }
  .nav-search { max-width: 100%; }
}
@media (max-width: 576px) {
  .brand-logo-only .brand-logo,
  .brand-logo { width: min(220px, 68vw) !important; height: 58px !important; }
  .footer-links.two-column-links { columns: 2 !important; column-gap: 22px; }
}
@media (max-width: 380px) {
  .brand-logo-only .brand-logo,
  .brand-logo { width: min(190px, 64vw) !important; height: 54px !important; }
  .footer-links.two-column-links { column-gap: 16px; }
}
