/* Bengali font applied on top of Bootstrap. */
:root { --bn-font: 'Noto Serif Bengali', system-ui, serif; }

body,
.btn,
.form-control,
.form-select,
.navbar,
.nav-link { font-family: var(--bn-font); }

/* ---- Public site ---- */
/* Light background with high-contrast, vibrant text. */
.site-public {
    background-color: #f3f7f5;
    color: #16202e;
}
.site-public main { color: #16202e; }
.site-public h1,
.site-public h2,
.site-public .card-title {
    color: #064d39;          /* vibrant brand green for headings */
    font-weight: 700;
}
.site-public .lead { color: #1f2a37; }
/* Muted greys -> richer slate so secondary text stays readable. */
.site-public .text-secondary { color: #3b4757 !important; }
/* ...but keep it light on the dark footer, otherwise it's invisible. */
.site-public footer.bg-dark .text-secondary { color: #adb5bd !important; }
.site-public .card-footer .bi { color: #064d39; }
.site-public .badge.text-bg-light { color: #064d39 !important; }

.card-thumb { height: 190px; object-fit: cover; }
/* Ad / monetization slots (content configured in the admin panel). */
.ad-slot { text-align: center; overflow: hidden; }
.ad-slot:empty { display: none; }
.story-body p,
.page-body p { margin-bottom: 1rem; line-height: 1.9; }
.footer-links a:hover { text-decoration: underline !important; }

/* ---- Admin shell ---- */
.admin-topbar { position: sticky; top: 0; z-index: 1020; }
.admin-sidebar .nav-link { color: #cbd5e1; border-radius: .5rem; }
.admin-sidebar .nav-link:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.admin-sidebar .nav-link.active { background: var(--bs-primary); color: #fff; }

/* Mobile / tablet: the sidebar is a Bootstrap offcanvas (slides in). */
.admin-sidebar { --bs-offcanvas-width: 250px; }

/* Desktop (lg+): pin the sidebar and offset the content. */
@media (min-width: 992px) {
    .admin-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 250px;
        height: 100vh;
        overflow-y: auto;
        z-index: 1030;
        display: flex;
        flex-direction: column;
    }
    /* Bootstrap forces offcanvas transparent above its breakpoint — keep it dark. */
    .admin-sidebar.offcanvas-lg { background-color: #212529 !important; }
    .admin-content { margin-left: 250px; }
}

/* Long regex / urls shouldn't blow out tables. */
code, .pattern { word-break: break-all; }

/* Per-column table filter row. */
.filter-row th { padding: .4rem .5rem; background: #f8f9fa; font-weight: 400; }
