/* Consistent public member directory and management-card presentation. */
body:has(#membersTable),
body:has(.member-card) {
    background: #f3f7fb;
}

.member-directory-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    width: calc(100% - 30px);
    max-width: 1500px;
    margin: 24px auto -4px;
    padding: 18px 22px;
    border-radius: 16px;
    background: linear-gradient(115deg, #0b2a4a, #0e4f91 64%, #07956d);
    color: #fff;
    box-shadow: 0 12px 28px rgba(11,42,74,.16);
}

.member-directory-icon {
    display: grid;
    place-items: center;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 13px;
    background: rgba(255,255,255,.14);
    color: #ffd24a;
    font-size: 1.35rem;
}

.member-directory-heading small {
    display: block;
    margin-bottom: 2px;
    color: #9fe2cb;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.member-directory-heading h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.2rem, 2.2vw, 1.7rem);
    font-weight: 800;
}

body:has(#membersTable) main > .row {
    padding: 22px !important;
    border: 1px solid #dce6f0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 45px rgba(11, 42, 74, .08);
}

body:has(#membersTable) .card-body { padding: 0; }

#membersTable_wrapper .dataTables_length,
#membersTable_wrapper .dataTables_filter {
    margin-bottom: 18px;
    color: #40536d;
    font-size: .84rem;
    font-weight: 700;
}

#membersTable_wrapper .dataTables_length select,
#membersTable_wrapper .dataTables_filter input {
    min-height: 38px;
    border: 1px solid #cbd9e7;
    border-radius: 9px;
    background: #f8fbfe;
    color: #12233f;
    outline: none;
    box-shadow: none;
}

#membersTable_wrapper .dataTables_filter input {
    width: min(260px, 60vw);
    margin-left: 8px;
    padding: 7px 12px;
}

#membersTable_wrapper .dataTables_filter input:focus {
    border-color: #1769e0;
    box-shadow: 0 0 0 3px rgba(23, 105, 224, .12);
}

#membersTable {
    width: 100% !important;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid #dce6f0 !important;
    border-radius: 13px;
    color: #243750;
    font-size: .84rem;
}

#membersTable thead,
#membersTable thead.table-success {
    background: linear-gradient(115deg, #0b2a4a, #0e4f91 62%, #07956d) !important;
}

#membersTable thead th {
    padding: 13px 10px !important;
    border: 0 !important;
    border-right: 1px solid rgba(255,255,255,.12) !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .025em;
    text-transform: uppercase;
    vertical-align: middle;
}

#membersTable tbody td {
    padding: 10px !important;
    border-color: #e7edf4 !important;
    background: #fff;
    color: #243750;
    vertical-align: middle;
}

#membersTable.table-striped > tbody > tr:nth-of-type(odd) > * { background: #f8fbfe; }
#membersTable.table-hover > tbody > tr:hover > * { background: #eaf4ff !important; }

#membersTable tbody tr { transition: transform .15s ease, box-shadow .15s ease; }
#membersTable tbody tr:hover { box-shadow: inset 4px 0 #07956d; }

#membersTable .member-img {
    width: 62px !important;
    height: 62px !important;
    border: 3px solid #fff;
    border-radius: 13px;
    object-fit: cover;
    box-shadow: 0 5px 14px rgba(11,42,74,.18);
    cursor: pointer;
}

#membersTable .btn-outline-info {
    border: 0;
    border-radius: 8px;
    background: linear-gradient(120deg, #07956d, #1769e0);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 5px 13px rgba(23,105,224,.18);
}

#membersTable .btn-outline-info:hover {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(23,105,224,.25);
}

#membersTable_wrapper .dataTables_info {
    padding-top: 18px;
    color: #62728a;
    font-size: .8rem;
    font-style: normal;
}

#membersTable_wrapper .dataTables_paginate { padding-top: 13px; }
#membersTable_wrapper .paginate_button .page-link {
    margin: 0 3px;
    border: 0;
    border-radius: 8px;
    color: #0b4f96;
}

#membersTable_wrapper .paginate_button.active .page-link {
    background: linear-gradient(120deg, #07956d, #1769e0);
    color: #fff;
    box-shadow: 0 4px 11px rgba(23,105,224,.2);
}

/* Current-management cards */
.member-card {
    overflow: hidden;
    border: 1px solid #dce6f0 !important;
    border-radius: 18px !important;
    background: #fff;
    box-shadow: 0 12px 32px rgba(11,42,74,.09) !important;
    transition: transform .2s ease, box-shadow .2s ease;
}

.member-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 42px rgba(11,42,74,.16) !important;
}

.member-card img { background: linear-gradient(145deg, #edf4fb, #f9fbfd) !important; }
.member-card .card-body { border-top: 4px solid #07956d; padding: 16px; }
.member-card .card-title { margin: 0; color: #0b2a4a; font-size: 1rem; font-weight: 800; }

@media (max-width: 767.98px) {
    .member-directory-heading { width: calc(100% - 16px); margin-top: 12px; padding: 14px 16px; }
    body:has(#membersTable) main > .row { margin: 12px 8px !important; padding: 13px !important; border-radius: 14px; }
    #membersTable_wrapper .dataTables_length,
    #membersTable_wrapper .dataTables_filter { float: none; text-align: left; }
    #membersTable_wrapper .dataTables_filter input { width: calc(100% - 58px); }
    #membersTable thead th, #membersTable tbody td { padding: 9px 8px !important; }
}

/* Contextual colour identities for each member directory */
body:has(.member-directory--current) { --directory-dark:#063f3a; --directory-main:#078267; --directory-accent:#f2c64e; --directory-soft:#e9f7f2; --directory-border:#c5e5dc; }
body:has(.member-directory--general) { --directory-dark:#123f70; --directory-main:#1b75c8; --directory-accent:#f0b844; --directory-soft:#edf6ff; --directory-border:#c7def2; }
body:has(.member-directory--life) { --directory-dark:#6a4512; --directory-main:#b5791c; --directory-accent:#ffe09a; --directory-soft:#fff7e5; --directory-border:#ead7ae; }
body:has(.member-directory--executive) { --directory-dark:#3d286b; --directory-main:#7751ae; --directory-accent:#62d2c3; --directory-soft:#f3effa; --directory-border:#dcd0ed; }
body:has(.member-directory--director) { --directory-dark:#712f31; --directory-main:#b24e51; --directory-accent:#f0c477; --directory-soft:#fbeeee; --directory-border:#ebcccc; }
body:has(.member-directory--advisor) { --directory-dark:#263b54; --directory-main:#3d718c; --directory-accent:#77d2dc; --directory-soft:#edf6f8; --directory-border:#c9dfe5; }

body:has([class*="member-directory--"]) .member-directory-heading {
    background: linear-gradient(115deg,var(--directory-dark),var(--directory-main) 72%,color-mix(in srgb,var(--directory-main) 72%,#173149));
    box-shadow: 0 12px 28px color-mix(in srgb,var(--directory-dark) 22%,transparent);
}
body:has([class*="member-directory--"]) .member-directory-icon { color:var(--directory-accent); background:color-mix(in srgb,var(--directory-accent) 16%,transparent); }
body:has([class*="member-directory--"]) .member-directory-heading small { color:color-mix(in srgb,var(--directory-accent) 75%,#fff); }
body:has([class*="member-directory--"]) main > .row,
body:has([class*="member-directory--"]) .container-1500 { border-color:var(--directory-border); }
body:has([class*="member-directory--"]) #membersTable { border-color:var(--directory-border)!important; }
body:has([class*="member-directory--"]) #membersTable thead,
body:has([class*="member-directory--"]) #membersTable thead.table-success { background:linear-gradient(115deg,var(--directory-dark),var(--directory-main))!important; }
body:has([class*="member-directory--"]) #membersTable.table-striped>tbody>tr:nth-of-type(odd)>* { background:var(--directory-soft); }
body:has([class*="member-directory--"]) #membersTable.table-hover>tbody>tr:hover>* { background:color-mix(in srgb,var(--directory-soft) 82%,#fff)!important; }
body:has([class*="member-directory--"]) #membersTable tbody tr:hover { box-shadow:inset 4px 0 var(--directory-main); }
body:has([class*="member-directory--"]) #membersTable .member-img { border-color:#fff; box-shadow:0 5px 14px color-mix(in srgb,var(--directory-dark) 22%,transparent); }
body:has([class*="member-directory--"]) #membersTable .btn-outline-info { background:linear-gradient(120deg,var(--directory-main),var(--directory-dark)); box-shadow:0 5px 13px color-mix(in srgb,var(--directory-main) 22%,transparent); }
body:has([class*="member-directory--"]) #membersTable_wrapper .dataTables_filter input:focus { border-color:var(--directory-main); box-shadow:0 0 0 3px color-mix(in srgb,var(--directory-main) 14%,transparent); }
body:has([class*="member-directory--"]) #membersTable_wrapper .paginate_button .page-link { color:var(--directory-dark); }
body:has([class*="member-directory--"]) #membersTable_wrapper .paginate_button.active .page-link { background:linear-gradient(120deg,var(--directory-main),var(--directory-dark)); }
body:has(.member-directory--current) .member-card { border-color:var(--directory-border)!important; }
body:has(.member-directory--current) .member-card img { background:linear-gradient(145deg,var(--directory-soft),#fff)!important; }
body:has(.member-directory--current) .member-card .card-body { border-top-color:var(--directory-main); }
body:has(.member-directory--current) .member-card .card-title { color:var(--directory-dark); }
body:has([class*="member-directory--"]) .modal-header { color:#fff!important; background:linear-gradient(115deg,var(--directory-dark),var(--directory-main))!important; }
