/* =========================================================
   ASOA – الفضاء الرقمي لجمعية الأعمال الاجتماعية
   RTL-first. الخط قابل للتغيير من المتغير --asoa-font
   ========================================================= */

@font-face { font-family: 'Cairo'; font-style: normal; font-weight: 400; font-display: swap; src: url('../vendor/cairo/cairo-arabic-400-normal.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'Cairo'; font-style: normal; font-weight: 600; font-display: swap; src: url('../vendor/cairo/cairo-arabic-600-normal.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'Cairo'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/cairo/cairo-arabic-700-normal.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'Cairo'; font-style: normal; font-weight: 400; font-display: swap; src: url('../vendor/cairo/cairo-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: 'Cairo'; font-style: normal; font-weight: 600; font-display: swap; src: url('../vendor/cairo/cairo-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: 'Cairo'; font-style: normal; font-weight: 700; font-display: swap; src: url('../vendor/cairo/cairo-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 {
	--asoa-font: 'Cairo', 'Tajawal', 'Segoe UI', Tahoma, sans-serif;

	--asoa-green-900: #0E3B27;
	--asoa-green-800: #134D33;
	--asoa-green-700: #1B6644;
	--asoa-green-600: #237A52;
	--asoa-green-100: #E4F1EA;
	--asoa-red:       #B3261E;
	--asoa-red-100:   #FBE9E7;
	--asoa-ink:       #1D2723;
	--asoa-muted:     #66736D;
	--asoa-line:      #E0E6E2;
	--asoa-bg:        #F3F5F4;
	--asoa-surface:   #FFFFFF;

	--asoa-sidebar-w: 264px;
	--asoa-topbar-h:  64px;

	--bs-body-font-family: var(--asoa-font);
	--bs-body-color: var(--asoa-ink);
	--bs-body-bg: var(--asoa-bg);
	--bs-primary: var(--asoa-green-700);
	--bs-primary-rgb: 27, 102, 68;
	--bs-danger: var(--asoa-red);
	--bs-danger-rgb: 179, 38, 30;
	--bs-link-color: var(--asoa-green-700);
	--bs-link-color-rgb: 27, 102, 68;
	--bs-link-hover-color: var(--asoa-green-900);
	--bs-border-color: var(--asoa-line);
	--bs-secondary-color: var(--asoa-muted);
	--bs-border-radius: .5rem;
	--bs-focus-ring-color: rgba(27, 102, 68, .25);
}

body { font-family: var(--asoa-font); font-size: .95rem; line-height: 1.7; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.35; }
.num, .stat-value, .table td.num { font-variant-numeric: tabular-nums; }
.ltr { direction: ltr; unicode-bidi: isolate; display: inline-block; }

/* ---------- Buttons ---------- */
.btn { font-weight: 600; min-height: 42px; padding-inline: 1rem; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.btn-sm { min-height: 34px; padding-inline: .7rem; }
.btn-primary { --bs-btn-bg: var(--asoa-green-700); --bs-btn-border-color: var(--asoa-green-700); --bs-btn-hover-bg: var(--asoa-green-800); --bs-btn-hover-border-color: var(--asoa-green-800); --bs-btn-active-bg: var(--asoa-green-900); --bs-btn-active-border-color: var(--asoa-green-900); --bs-btn-disabled-bg: var(--asoa-green-700); --bs-btn-disabled-border-color: var(--asoa-green-700); }
.btn-outline-primary { --bs-btn-color: var(--asoa-green-700); --bs-btn-border-color: var(--asoa-green-700); --bs-btn-hover-bg: var(--asoa-green-700); --bs-btn-hover-border-color: var(--asoa-green-700); --bs-btn-active-bg: var(--asoa-green-800); }
.btn-danger { --bs-btn-bg: var(--asoa-red); --bs-btn-border-color: var(--asoa-red); --bs-btn-hover-bg: #93201A; --bs-btn-hover-border-color: #93201A; }
.btn-light { --bs-btn-bg: #fff; --bs-btn-border-color: var(--asoa-line); }
:focus-visible { outline: 3px solid rgba(27, 102, 68, .45); outline-offset: 2px; }

/* ---------- Forms ---------- */
.form-control, .form-select { min-height: 44px; border-color: var(--asoa-line); }
.form-control:focus, .form-select:focus { border-color: var(--asoa-green-600); box-shadow: 0 0 0 .2rem rgba(27, 102, 68, .15); }
.form-label { font-weight: 600; font-size: .9rem; margin-bottom: .35rem; }
.form-text { color: var(--asoa-muted); }
.form-check-input:checked { background-color: var(--asoa-green-700); border-color: var(--asoa-green-700); }
.form-check-input { width: 1.15em; height: 1.15em; }
.required::after { content: ' *'; color: var(--asoa-red); }

/* ---------- Layout ---------- */
.app { min-height: 100vh; }
.app-sidebar {
	position: fixed; inset-block: 0; inset-inline-start: 0; width: var(--asoa-sidebar-w);
	background-color: var(--asoa-green-900);
	/* نقش النجمة الثمانية (الخاتم) بشفافية منخفضة */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.05' stroke-width='1'%3E%3Crect x='14' y='14' width='28' height='28'/%3E%3Crect x='14' y='14' width='28' height='28' transform='rotate(45 28 28)'/%3E%3C/g%3E%3C/svg%3E");
	color: #DCEBE3; z-index: 1040; display: flex; flex-direction: column;
	transition: transform .25s ease;
}
.app-sidebar::before { content: ''; position: absolute; inset-inline: 0; top: 0; height: 4px; background: var(--asoa-red); }
.sidebar-brand { display: flex; align-items: center; gap: .75rem; padding: 1.35rem 1.1rem 1rem; color: #fff; text-decoration: none; }
.sidebar-brand:hover { color: #fff; }
.brand-logo { width: 46px; height: 46px; border-radius: 50%; background: #fff; display: grid; place-items: center; overflow: hidden; flex-shrink: 0; }
.brand-logo img { width: 100%; height: 100%; object-fit: contain; }
.brand-logo .placeholder-mark { color: var(--asoa-green-800); font-weight: 700; font-size: 1.15rem; }
.brand-text strong { display: block; font-size: 1rem; line-height: 1.3; }
.brand-text small { display: block; color: #A9C9B8; font-size: .74rem; line-height: 1.45; }

.sidebar-nav { flex: 1; overflow-y: auto; padding: .5rem .65rem 1rem; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.15) transparent; }
.sidebar-nav .nav-section { font-size: .75rem; color: #8FB5A1; padding: 1rem .75rem .35rem; }
.sidebar-link {
	display: flex; align-items: center; gap: .75rem; padding: .55rem .75rem; margin-bottom: 2px;
	color: #DCEBE3; text-decoration: none; border-radius: .5rem; font-weight: 600; font-size: .92rem; position: relative;
}
.sidebar-link .bi { font-size: 1.1rem; width: 1.25rem; text-align: center; opacity: .9; }
.sidebar-link:hover { background: rgba(255,255,255,.07); color: #fff; }
.sidebar-link.active { background: rgba(255,255,255,.12); color: #fff; }
.sidebar-link.active::before { content: ''; position: absolute; inset-inline-start: -.65rem; top: 20%; bottom: 20%; width: 4px; border-radius: 4px; background: var(--asoa-red); }
.sidebar-link.disabled { opacity: .5; pointer-events: none; }
.sidebar-link .soon { margin-inline-start: auto; font-size: .68rem; font-weight: 600; background: rgba(255,255,255,.1); color: #CFE3D8; padding: 0 .45rem; border-radius: 999px; }
.sidebar-footer { padding: .75rem .65rem 1rem; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-footer .sidebar-link { width: 100%; background: transparent; border: 0; text-align: start; }

.app-main { margin-inline-start: var(--asoa-sidebar-w); min-height: 100vh; display: flex; flex-direction: column; }
.app-topbar {
	position: sticky; top: 0; z-index: 1030; height: var(--asoa-topbar-h);
	background: rgba(255,255,255,.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--asoa-line);
	display: flex; align-items: center; gap: .75rem; padding-inline: 1.25rem;
}
.topbar-title { font-weight: 700; font-size: 1.05rem; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-actions { margin-inline-start: auto; display: flex; align-items: center; gap: .5rem; }
.icon-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--asoa-line); background: #fff; display: inline-grid; place-items: center; position: relative; color: var(--asoa-ink); }
.icon-btn:hover { background: var(--asoa-green-100); }
.icon-btn .dot { position: absolute; top: 6px; inset-inline-end: 6px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--asoa-red); color: #fff; font-size: .68rem; display: grid; place-items: center; padding: 0 4px; }
.year-select { min-height: 40px; width: auto; font-weight: 600; font-variant-numeric: tabular-nums; }
.user-chip { display: flex; align-items: center; gap: .5rem; border: 1px solid var(--asoa-line); border-radius: 999px; padding: .2rem .25rem .2rem .75rem; background: #fff; color: var(--asoa-ink); }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--asoa-green-100); color: var(--asoa-green-800); display: grid; place-items: center; font-weight: 700; font-size: .85rem; flex-shrink: 0; }
.avatar-lg { width: 72px; height: 72px; font-size: 1.5rem; }

.app-content { padding: 1.5rem 1.25rem 2rem; flex: 1; }
.app-footer { padding: 1rem 1.25rem; color: var(--asoa-muted); font-size: .8rem; border-top: 1px solid var(--asoa-line); }

.sidebar-backdrop { display: none; }
@media (max-width: 991.98px) {
	.app-sidebar { transform: translateX(100%); box-shadow: none; }
	.sidebar-open .app-sidebar { transform: none; box-shadow: -12px 0 40px rgba(0,0,0,.2); }
	.sidebar-open .sidebar-backdrop { display: block; position: fixed; inset: 0; background: rgba(10, 30, 20, .45); z-index: 1035; }
	.app-main { margin-inline-start: 0; }
	.app-content { padding: 1rem .85rem 1.5rem; }
	.app-topbar { padding-inline: .85rem; }
}
@media (prefers-reduced-motion: reduce) { .app-sidebar { transition: none; } }

/* ---------- Page header ---------- */
.page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .75rem; margin-bottom: 1.25rem; }
.page-head h1 { font-size: 1.45rem; margin: 0; }
.page-head p { margin: .15rem 0 0; color: var(--asoa-muted); }

/* ---------- Panels & stats ---------- */
.panel { background: var(--asoa-surface); border: 1px solid var(--asoa-line); border-radius: .75rem; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .9rem 1.1rem; border-bottom: 1px solid var(--asoa-line); }
.panel-head h2 { font-size: 1rem; margin: 0; }
.panel-body { padding: 1.1rem; }

.stat { background: var(--asoa-surface); border: 1px solid var(--asoa-line); border-radius: .75rem; padding: 1rem 1.1rem; height: 100%; display: flex; gap: .85rem; align-items: flex-start; }
.stat-icon { width: 44px; height: 44px; border-radius: .6rem; display: grid; place-items: center; font-size: 1.25rem; background: var(--asoa-green-100); color: var(--asoa-green-700); flex-shrink: 0; }
.stat-label { color: var(--asoa-muted); font-size: .85rem; margin: 0; }
.stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1.2; margin: .1rem 0 0; }
.stat.is-pending .stat-icon { background: #EEF1EF; color: #8A9690; }
.stat.is-pending .stat-value { color: #A3ADA8; }
.stat-note { font-size: .75rem; color: var(--asoa-muted); }

/* الترحيب في لوحة التحكم: العنصر البصري المميز الوحيد */
.hero-year { background: var(--asoa-green-800); color: #fff; border-radius: .9rem; padding: 1.35rem 1.4rem; position: relative; overflow: hidden; }
.hero-year::after { content: ''; position: absolute; inset-inline-end: -40px; top: -40px; width: 220px; height: 220px; opacity: .12;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='20' y='20' width='60' height='60'/%3E%3Crect x='20' y='20' width='60' height='60' transform='rotate(45 50 50)'/%3E%3Ccircle cx='50' cy='50' r='14'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain; }
.hero-year h1 { font-size: 1.35rem; margin: 0 0 .2rem; }
.hero-year p { margin: 0; color: #BFDCCB; }
.hero-year .year-num { font-size: 2.6rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }

/* ---------- Tables ---------- */
.table { --bs-table-hover-bg: #F6FAF8; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .7rem .85rem; vertical-align: middle; }
.table thead th { font-size: .82rem; color: var(--asoa-muted); font-weight: 600; background: #F8FAF9; border-bottom-width: 1px; white-space: nowrap; }
.table-responsive { border-radius: .75rem; }

/* جداول الهاتف: تتحول إلى بطاقات */
@media (max-width: 767.98px) {
	.table-stack thead { display: none; }
	.table-stack tbody tr { display: block; padding: .6rem .25rem; border-bottom: 1px solid var(--asoa-line); }
	.table-stack tbody td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .3rem .75rem; text-align: start; }
	.table-stack tbody td::before { content: attr(data-label); color: var(--asoa-muted); font-size: .8rem; font-weight: 600; flex-shrink: 0; }
	.table-stack tbody td.td-actions { justify-content: flex-end; }
	.table-stack tbody td.td-actions::before { content: none; }
}

/* ---------- Badges ---------- */
.badge { font-weight: 600; padding: .35em .7em; border-radius: 999px; }
.badge-soft-success { background: var(--asoa-green-100); color: var(--asoa-green-800); }
.badge-soft-secondary { background: #EEF0EF; color: #56625C; }
.badge-soft-danger { background: var(--asoa-red-100); color: var(--asoa-red); }
.badge-soft-warning { background: #FFF4DB; color: #7A5300; }

/* ---------- Empty state ---------- */
.empty-state { text-align: center; padding: 2.5rem 1rem; }
.empty-state .bi { font-size: 2.4rem; color: #A9B8B0; }
.empty-state h3 { font-size: 1.05rem; margin: .75rem 0 .25rem; }
.empty-state p { color: var(--asoa-muted); margin: 0 0 1rem; }

/* ---------- Auth ---------- */
.auth-wrap { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
.auth-side { background-color: var(--asoa-green-900); color: #fff; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='84' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='1'%3E%3Crect x='14' y='14' width='28' height='28'/%3E%3Crect x='14' y='14' width='28' height='28' transform='rotate(45 28 28)'/%3E%3C/g%3E%3C/svg%3E"); }
.auth-side::before { content: ''; position: absolute; inset-inline: 0; top: 0; height: 5px; background: var(--asoa-red); }
.auth-side h1 { font-size: 2rem; max-width: 20ch; line-height: 1.45; }
.auth-side p { color: #BFDCCB; max-width: 42ch; }
.auth-logos { display: flex; gap: .75rem; align-items: center; }
.auth-logos .brand-logo { width: 64px; height: 64px; }
.auth-form-area { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 1.25rem; background: var(--asoa-surface); }
.auth-card { width: 100%; max-width: 400px; }
.auth-card h2 { font-size: 1.5rem; margin-bottom: .25rem; }
.auth-card .lead-text { color: var(--asoa-muted); margin-bottom: 1.5rem; }
@media (max-width: 991.98px) {
	.auth-wrap { grid-template-columns: 1fr; }
	.auth-side { padding: 1.5rem 1.25rem; min-height: auto; }
	.auth-side h1 { font-size: 1.25rem; margin: 1rem 0 0; }
	.auth-side p, .auth-side .auth-foot { display: none; }
}

/* ---------- Permission matrix ---------- */
.perm-module { border: 1px solid var(--asoa-line); border-radius: .6rem; padding: .75rem 1rem; height: 100%; }
.perm-module h3 { font-size: .95rem; margin: 0; }
.perm-module .form-check { margin-bottom: .2rem; }

/* ---------- Error pages ---------- */
.error-page { min-height: 60vh; display: grid; place-items: center; text-align: center; }
.error-code { font-size: 4rem; font-weight: 700; color: var(--asoa-green-700); line-height: 1; font-variant-numeric: tabular-nums; }
.error-page .bi { font-size: 2.5rem; color: var(--asoa-red); }

/* ---------- Diff ---------- */
.diff-old { background: var(--asoa-red-100); }
.diff-new { background: var(--asoa-green-100); }
pre.value { white-space: pre-wrap; word-break: break-word; margin: 0; font-family: var(--asoa-font); font-size: .85rem; }

/* SweetAlert */
.swal2-popup { font-family: var(--asoa-font) !important; }

/* Settings */
.settings-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; border-bottom-color: var(--asoa-line); }
.settings-tabs .nav-link { white-space: nowrap; color: var(--asoa-muted); font-weight: 600; }
.settings-tabs .nav-link.active { color: var(--asoa-green-700); border-top: 3px solid var(--asoa-red); }
.logo-preview { height: 120px; display: grid; place-items: center; border: 1px dashed #cfd8d3; border-radius: .6rem; background: #fafbfa; text-align: center; padding: .5rem; }
.logo-preview img { max-height: 100%; max-width: 100%; object-fit: contain; }
.audit-json { white-space: pre-wrap; word-break: break-word; font-size: .82rem; margin: 0; direction: ltr; text-align: left; font-family: ui-monospace, Consolas, monospace; }

/* Pending module cards: stacked so the hint has full width */
.stat.is-pending { flex-direction: column; align-items: flex-start; gap: .55rem; }
.stat.is-pending .stat-icon { width: 38px; height: 38px; font-size: 1.05rem; }
.stat.is-pending .stat-value { font-size: 1.3rem; }
.stat-note { display: block; line-height: 1.5; }
.setup-box { max-width: 620px; }

/* Sidebar: upcoming modules grouped & collapsed */
.nav-upcoming { margin-top: .75rem; border-top: 1px solid rgba(255,255,255,.08); padding-top: .5rem; }
.nav-upcoming > summary { list-style: none; cursor: pointer; color: #CFE3D8; }
.nav-upcoming > summary::-webkit-details-marker { display: none; }
.nav-upcoming > summary .soon { margin-inline-start: auto; }
.nav-upcoming > summary .chev { font-size: .8rem; width: auto; transition: transform .2s; }
.nav-upcoming[open] > summary .chev { transform: rotate(180deg); }
.nav-upcoming > summary:focus-visible { outline: 2px solid #CFE3D8; outline-offset: -2px; }
.nav-upcoming-list { padding-inline-start: .35rem; }
.nav-upcoming-list .sidebar-link.disabled { opacity: 1; color: #9DBDAD; font-size: .88rem; padding-block: .4rem; }
.nav-upcoming-list .phase { margin-inline-start: auto; font-size: .68rem; color: #8FB5A1; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .nav-upcoming > summary .chev { transition: none; } }

/* ---------- Phase 2-8 modules ---------- */
.min-w-0 { min-width: 0; }
.detail-list dt { font-weight: 600; color: var(--asoa-muted, #56625C); padding-block: .45rem; border-bottom: 1px solid var(--asoa-line, #E3E8E5); }
.detail-list dd { padding-block: .45rem; border-bottom: 1px solid var(--asoa-line, #E3E8E5); margin-bottom: 0; overflow-wrap: anywhere; }
.notif-menu { min-width: 300px; max-width: 340px; }
.notif-item { white-space: normal; padding-block: .55rem; border-bottom: 1px solid var(--asoa-line, #E3E8E5); }
.notif-unread { background: #F0F7F3; }
.notif-unread .fw-semibold::before { content: ''; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--asoa-green-700, #1F6F4A); margin-inline-end: .4rem; vertical-align: middle; }
.report-bar { display: grid; grid-template-columns: 4.5rem 1fr 7.5rem; align-items: center; gap: .5rem; margin-bottom: .35rem; }
.report-bar-track { display: flex; flex-direction: column; gap: 2px; }
.report-bar-fill { display: block; height: 7px; border-radius: 4px; min-width: 2px; }
.report-bar-fill.in, .legend-dot.in { background: #1F6F4A; }
.report-bar-fill.out, .legend-dot.out { background: #B3261E; }
.report-bar-value { text-align: end; color: #56625C; }
.legend-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; vertical-align: middle; }
.announcement-body { line-height: 1.9; overflow-wrap: anywhere; }
@media print {
	.app-sidebar, .app-topbar, .app-footer, .page-head .btn, .sidebar-backdrop { display: none !important; }
	.app-main { margin: 0 !important; }
}
.member-card { border-radius: 14px; padding: 1.1rem 1.2rem; color: #fff; background: linear-gradient(135deg, var(--asoa-green-900, #0E3B27), var(--asoa-green-700, #1F6F4A)); box-shadow: 0 8px 22px rgba(14, 59, 39, .25); position: relative; overflow: hidden; }
.member-card::after { content: ''; position: absolute; inset-inline-end: -30px; top: -30px; width: 120px; height: 120px; border-radius: 50%; border: 18px solid rgba(255,255,255,.08); }
.stat-value.fs-5 { white-space: nowrap; }
@media (max-width: 575.98px) { .stat-value.fs-5 { font-size: 1rem !important; } }
.footer-brand { color: var(--asoa-green-800, #145236); letter-spacing: .04em; font-weight: 700; }
.auth-credit { margin: 1.25rem 0 0; text-align: center; font-size: .85rem; color: #6b7671; }
