@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 400; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-bengali-400-normal.woff2") format("woff2"); unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1; }
@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 400; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 500; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-bengali-500-normal.woff2") format("woff2"); unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1; }
@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 500; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 600; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-bengali-600-normal.woff2") format("woff2"); unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1; }
@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 600; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 700; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-bengali-700-normal.woff2") format("woff2"); unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1; }
@font-face { font-family: "Noto Sans Bengali"; font-style: normal; font-weight: 700; font-display: swap; src: url("../vendor/fonts/noto-sans-bengali-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
    --ta-primary: #0f766e;
    --ta-primary-dark: #115e59;
    --ta-accent: #f59e0b;
    --ta-soft: #f0fdfa;
    --ta-bg: #f8fafc;
    --bs-primary: #0f766e;
    --bs-primary-rgb: 15, 118, 110;
    --bs-link-color: #0f766e;
    --bs-link-color-rgb: 15, 118, 110;
    --bs-link-hover-color: #115e59;
    --bs-font-sans-serif: "Noto Sans Bengali", system-ui, -apple-system, "Segoe UI", sans-serif;
}

body { background: var(--ta-bg); font-family: var(--bs-font-sans-serif); font-size: 1.02rem; }

.btn-primary { --bs-btn-bg: var(--ta-primary); --bs-btn-border-color: var(--ta-primary); --bs-btn-hover-bg: var(--ta-primary-dark); --bs-btn-hover-border-color: var(--ta-primary-dark); --bs-btn-active-bg: var(--ta-primary-dark); --bs-btn-disabled-bg: var(--ta-primary); --bs-btn-disabled-border-color: var(--ta-primary); }
.btn-outline-primary { --bs-btn-color: var(--ta-primary); --bs-btn-border-color: var(--ta-primary); --bs-btn-hover-bg: var(--ta-primary); --bs-btn-hover-border-color: var(--ta-primary); --bs-btn-active-bg: var(--ta-primary); }
.btn-accent { background: var(--ta-accent); border-color: var(--ta-accent); color: #1f2937; font-weight: 600; }
.btn-accent:hover { background: #d97706; border-color: #d97706; color: #111827; }
.text-primary { color: var(--ta-primary) !important; }
.bg-primary { background-color: var(--ta-primary) !important; }
.bg-soft { background: var(--ta-soft); }
.form-control:focus, .form-select:focus { border-color: #5eead4; box-shadow: 0 0 0 .2rem rgba(15, 118, 110, .15); }
.form-check-input:checked { background-color: var(--ta-primary); border-color: var(--ta-primary); }
.pagination { --bs-pagination-active-bg: var(--ta-primary); --bs-pagination-active-border-color: var(--ta-primary); --bs-pagination-color: var(--ta-primary); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--ta-primary); }

/* Navbar */
.ta-navbar { background: #fff; border-bottom: 1px solid #e5e7eb; }
.ta-brand img { height: 56px; width: auto; }
.ta-logo-lg { height: 120px; width: auto; }
.ta-logo-chip { display: inline-flex; background: #fff; border-radius: .75rem; padding: .4rem .55rem; }
.ta-logo-chip img { height: 64px; width: auto; }
@media (max-width: 575.98px) { .ta-brand img { height: 46px; } }
.ta-brand-title { font-weight: 700; color: var(--ta-primary); line-height: 1.1; }
.ta-brand-sub { font-size: .72rem; color: #64748b; }

/* Hero */
.ta-hero { background: linear-gradient(135deg, #0f766e 0%, #115e59 55%, #134e4a 100%); color: #fff; position: relative; overflow: hidden; }
.ta-hero::after { content: ""; position: absolute; right: -120px; top: -120px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(251,191,36,.35), transparent 70%); }
.ta-hero h1 { font-weight: 700; }
.ta-hero .lead { color: #ccfbf1; }

.ta-card { background: #fff; border: 1px solid #e5e7eb; border-radius: .9rem; }
.ta-stat { font-size: 1.9rem; font-weight: 700; color: var(--ta-primary); line-height: 1; }
.ta-section-title { font-weight: 700; position: relative; padding-bottom: .5rem; margin-bottom: 1.25rem; }
.ta-section-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 56px; height: 3px; border-radius: 2px; background: var(--ta-accent); }
.text-center .ta-section-title::after, .ta-section-title.text-center::after { left: 50%; transform: translateX(-50%); }

.ta-avatar { width: 44px; height: 44px; object-fit: cover; border-radius: 50%; background: #e2e8f0; }
.ta-avatar-lg { width: 96px; height: 96px; object-fit: cover; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.08); }

/* Panel */
.ta-sidebar .nav-link { color: #334155; border-radius: .5rem; padding: .55rem .8rem; display: flex; align-items: center; gap: .55rem; }
.ta-sidebar .nav-link:hover { background: var(--ta-soft); color: var(--ta-primary); }
.ta-sidebar .nav-link.active { background: var(--ta-primary); color: #fff; }
.ta-sidebar .nav-heading { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: #94a3b8; padding: .9rem .8rem .3rem; }

.table > :not(caption) > * > * { padding: .7rem .75rem; }
.ta-footer { background: #0b3b38; color: #cbd5e1; }
.ta-footer a { color: #fde68a; text-decoration: none; }
.required::after { content: " *"; color: #dc2626; }

/* মাসিক আয়-ব্যয়ের বার চার্ট */
.ta-bars { display: flex; gap: .75rem; align-items: flex-end; }
.ta-bar-group { flex: 1; text-align: center; min-width: 0; }
.ta-bar-pair { height: 140px; display: flex; gap: 4px; align-items: flex-end; justify-content: center; border-bottom: 1px solid #e5e7eb; }
.ta-bar { width: 38%; max-width: 26px; border-radius: 4px 4px 0 0; }
.ta-bar-num { font-size: .72rem; line-height: 1.2; }
.ta-dot { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }

/* রক্তদাতা */
.ta-blood { width: 52px; height: 52px; flex-shrink: 0; border-radius: 50%; background: #dc2626; color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.ta-blood-tile { display: flex; flex-direction: column; align-items: center; padding: .9rem .25rem; border: 1px solid #fecaca; border-radius: .9rem; background: #fff5f5; text-decoration: none; transition: background .15s; }
.ta-blood-tile:hover { background: #fee2e2; }
.ta-blood-tile .g { font-size: 1.35rem; font-weight: 700; color: #dc2626; line-height: 1.1; }
.ta-blood-tile .c { font-size: .78rem; color: #64748b; }

/* গ্যালারি */
.ta-gallery-item { display: block; position: relative; border-radius: .75rem; overflow: hidden; background: #e2e8f0; }
.ta-gallery-item img { width: 100%; height: 190px; object-fit: cover; display: block; }
.ta-gallery-item span { position: absolute; left: 0; right: 0; bottom: 0; padding: .9rem .6rem .4rem; font-size: .78rem; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.65)); }
.ta-gallery-item span:empty { display: none; }

.ta-list li { margin-bottom: .45rem; }

/* অ্যাপ ডাউনলোড */
.ta-appbar { background: #134e4a; color: #fff; padding: .45rem 0; }
.ta-appbar .btn-close { font-size: .7rem; }
.ta-appcard { background: linear-gradient(135deg, #0f766e, #134e4a); color: #fff; border-radius: 1.25rem; }
.ta-appicon { width: 100%; max-width: 110px; border-radius: 22%; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.ta-step { display: flex; gap: .9rem; align-items: flex-start; padding: .8rem 0; border-bottom: 1px solid #e5e7eb; }
.ta-step:last-child { border-bottom: 0; }
.ta-step-num { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--ta-primary); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* মোবাইলের মেগা মেনু */
.d-contents { display: contents; }
.ta-mega { padding: .5rem 0 .75rem; }
.ta-mega-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; }
.ta-mega-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem; min-height: 58px; padding: .4rem .25rem; background: var(--ta-soft); border: 1px solid #ccfbf1; border-radius: .9rem; color: #134e4a; text-decoration: none; text-align: center; font: inherit; width: 100%; cursor: pointer; }
.ta-mega-item i { font-size: 1.2rem; line-height: 1; color: var(--ta-primary); }
.ta-mega-item span { font-size: .74rem; font-weight: 600; line-height: 1.2; }
.ta-mega-item:active, .ta-mega-item:hover { background: #ccfbf1; }
.ta-mega-item.active { background: var(--ta-primary); border-color: var(--ta-primary); color: #fff; }
.ta-mega-item.active i { color: #fff; }
.ta-mega-donate { background: #fff1f2; border-color: #fecdd3; color: #9f1239; }
.ta-mega-donate i { color: #e11d48; }
.ta-mega-account { background: #fffbeb; border-color: #fde68a; color: #78350f; }
.ta-mega-account i { color: #d97706; }
.ta-mega-logout { background: #f8fafc; border-color: #e2e8f0; color: #b91c1c; }
.ta-mega-logout i { color: #dc2626; }
.ta-mega-footer { display: flex; align-items: center; justify-content: center; gap: .9rem; margin: .6rem -.25rem .1rem; padding: .55rem .9rem; border-radius: 12px; background: #0f766e; }
.ta-mega-footer img, .ta-mega-dev-fallback { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 3px solid #fff; flex-shrink: 0; }
.ta-mega-dev-fallback { display: inline-flex; align-items: center; justify-content: center; background: var(--ta-soft); color: var(--ta-primary); font-size: 1.4rem; }
.ta-mega-dev-label { font-size: .8rem; color: #ccfbf1; line-height: 1.1; }
.ta-mega-dev-name { font-weight: 700; font-size: 1.05rem; color: #fff; line-height: 1.25; }
@media (max-width: 991.98px) { .ta-navbar .navbar-collapse { max-height: calc(100vh - 80px); overflow-y: auto; } }

.ta-other-donors { background: #fef2f2; border: 1px solid #fecaca; }

/* তারিখ বাছাই: dd/mm/yyyy ঘর + ক্যালেন্ডার */
.ta-dp { position: relative; }
.ta-dp-field { position: relative; cursor: pointer; }
.ta-dp-field .form-control { cursor: pointer; background-color: #fff; padding-right: 2.4rem; }
.ta-dp-icon { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); color: var(--ta-primary); pointer-events: none; }
.ta-dp-time { display: grid; grid-template-columns: 1fr 1fr 1.6fr; gap: .4rem; margin-top: .4rem; }
.ta-dp-pop { position: absolute; z-index: 1050; top: calc(100% + 4px); left: 0; width: 300px; max-width: calc(100vw - 2rem); background: #fff; border: 1px solid #cbd5e1; border-radius: .9rem; box-shadow: 0 12px 32px rgba(15, 23, 42, .18); padding: .7rem; }
.ta-dp-pop.up { top: auto; bottom: calc(100% + 4px); }
.ta-dp-head { display: flex; align-items: center; gap: .35rem; margin-bottom: .6rem; }
.ta-dp-head .form-select { min-width: 0; font-weight: 600; }
.ta-dp-nav { flex: 0 0 2rem; height: 2rem; border: 1px solid #cbd5e1; background: #fff; border-radius: .5rem; font-size: 1.25rem; line-height: 1; color: var(--ta-primary); }
.ta-dp-nav:hover { background: var(--ta-soft); }
.ta-dp-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.ta-dp-months { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ta-dp-dow { text-align: center; font-size: .72rem; font-weight: 600; color: #64748b; padding: .2rem 0; }
.ta-dp-day { border: 0; background: transparent; border-radius: .55rem; padding: .45rem 0; font-size: .95rem; color: #1f2937; }
.ta-dp-months .ta-dp-day { border: 1px solid #e2e8f0; padding: .55rem .2rem; font-size: .88rem; }
.ta-dp-day:hover:not(:disabled) { background: var(--ta-soft); }
.ta-dp-day.today { box-shadow: inset 0 0 0 1.5px var(--ta-accent); font-weight: 700; }
.ta-dp-day.selected { background: var(--ta-primary); color: #fff; font-weight: 700; }
.ta-dp-day:disabled { color: #cbd5e1; }
.ta-dp-foot { display: flex; gap: .4rem; margin-top: .6rem; padding-top: .6rem; border-top: 1px solid #e5e7eb; }

/* জন্ম ও মৃত্যুর তথ্য */
.ta-vital-icon { width: 72px; height: 72px; border-radius: .9rem; display: flex; align-items: center; justify-content: center; font-size: 1.9rem; }
.ta-vital-icon.birth { background: #ecfdf5; color: #059669; }
.ta-vital-icon.death { background: #f1f5f9; color: #475569; }
.ta-death-card { border-left: 4px solid #94a3b8; }

/* ছবির পপআপ (lightbox) */
.ta-lb { position: fixed; inset: 0; z-index: 2000; background: rgba(15, 23, 42, .92); display: flex; align-items: center; justify-content: center; padding: 3.5rem .75rem 2.5rem; }
.ta-lb[hidden] { display: none; }
.ta-lb-fig { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; }
.ta-lb-fig img { max-width: 100%; max-height: calc(100% - 2.5rem); object-fit: contain; border-radius: .5rem; box-shadow: 0 10px 40px rgba(0, 0, 0, .5); background: #1e293b; }
.ta-lb-fig figcaption { color: #e2e8f0; margin-top: .6rem; text-align: center; font-size: .95rem; }
.ta-lb-close { position: absolute; top: .6rem; right: .75rem; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .15); color: #fff; font-size: 2rem; line-height: 1; }
.ta-lb-close:hover, .ta-lb-nav:hover { background: rgba(255, 255, 255, .3); }
.ta-lb-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .15); color: #fff; font-size: 2rem; line-height: 1; z-index: 1; }
.ta-lb-prev { left: .5rem; }
.ta-lb-next { right: .5rem; }
.ta-lb-count { position: absolute; top: 1.2rem; left: 50%; transform: translateX(-50%); color: #cbd5e1; font-size: .9rem; }
body.ta-lb-open { overflow: hidden; }

/* হোম পেজের নোটিশ বোর্ড */
.ta-notice-section { background: #fffbeb; border-top: 1px solid #fde68a; border-bottom: 1px solid #fde68a; }
.ta-notice-icon { width: 2.1rem; height: 2.1rem; border-radius: .6rem; background: #f59e0b; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; }
.ta-notice-card { display: flex; gap: .9rem; height: 100%; padding: 1rem; background: #fff; border: 1px solid #fde68a; border-left: 4px solid #f59e0b; border-radius: .9rem; color: inherit; text-decoration: none; box-shadow: 0 1px 3px rgba(15, 23, 42, .05); transition: transform .15s, box-shadow .15s; }
.ta-notice-card:hover { color: inherit; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(15, 23, 42, .08); }
.ta-notice-card.pinned { border-left-color: #dc2626; }
.ta-notice-date { flex: 0 0 3.6rem; height: 3.8rem; border-radius: .7rem; background: #fef3c7; color: #92400e; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; }
.ta-notice-date .d { font-size: 1.45rem; font-weight: 700; }
.ta-notice-date .my { font-size: .7rem; }
.ta-notice-title { font-weight: 700; color: #1f2937; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ta-notice-body { font-size: .85rem; color: #64748b; margin-top: .25rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ta-notice-more { display: inline-block; margin-top: .35rem; font-size: .8rem; font-weight: 600; color: var(--ta-primary); }
