: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: "Hind Siliguri", 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; }
