:root {
    --primary-font: 'Manrope', sans-serif;
    --primary: #00581e;
    --primary-hover: #0d541a;
    --secondary: #655023;
    --primary-rgb: rgb(0 88 30 / 15%);
}

body {
    font-family: var(--primary-font), sans-serif;
    font-weight: 500;
}

body.authentication-bg {
    background-color: var(--primary);
}

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    font-family: var(--primary-font), sans-serif;
    font-weight: 600;
}

a {
    color: var(--primary);
    text-decoration: none;
    background-color: transparent;
}

a:hover, a:focus {
    color: var(--primary-hover);
    text-decoration: none;
}

b, strong {
    font-weight: 600;
}

.text-primary {
    color: var(--primary) !important;
}

.bg-primary {
    background-color: var(--primary) !important;
}

.font-weight-600 {
    font-weight: 600;
}

.required:after {
    content: ' *';
    color: red;
}

.form-control:focus {
    border-color: var(--primary);
}

.text-body[href]:hover {
    color: var(--primary) !important;
}

.btn-link {
    color: var(--primary);
}

.btn-link:hover {
    color: var(--primary-hover);
}

.btn-primary {
    color: #fff;
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
}

.btn-primary:hover {
    color: #fff !important;
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
}

.btn-primary:hover:not(.disabled):not(:disabled) {
    box-shadow: 0 8px 25px -8px var(--primary);
}

.btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show > .btn-primary.dropdown-toggle {
    color: #FFF;
    background-color: var(--primary-hover);
    border-color: var(--primary-hover);
}

.btn-primary.active, .btn-primary:active, .btn-primary:focus {
    background-color: var(--primary-hover) !important;
}

.btn-outline-primary {
    border: 1px solid var(--primary) !important;
    background-color: transparent;
    color: var(--primary);
}

.btn-outline-primary:hover {
    color: var(--primary) !important;
    background-color: var(--primary-rgb) !important;
    border-color: var(--primary-hover) !important;
}

.btn-outline-primary:hover:not(.disabled):not(:disabled) {
    background-color: rgba(115, 103, 240, .04);
    color: var(--primary);
}

.btn-outline-primary:not(:disabled):not(.disabled).active, .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled):focus, .show > .btn-outline-primary.dropdown-toggle {
    background-color: var(--primary);
    color: #fff;
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}

/*@media screen and (max-width: 1024px) {*/
/*    .hv-wrapper {*/
/*        display: flex;*/
/*    }*/
/*}*/

/*!* Genealogy *!*/
/*@media (max-width: 767.98px) {*/
/*    .hv-wrapper {*/
/*        display: flex;*/
/*    }*/

/*    .hv-wrapper .hv-item .hv-item-children {*/
/*        justify-content: flex-start;*/
/*    }*/

/*    .inbox-widget .inbox-item .inbox-item-date {*/
/*        top: 35px;*/
/*    }*/

/*    .user-card .table td {*/
/*        padding: 5px 0;*/
/*    }*/
/*}*/

/*.hv-wrapper .hv-item {*/
/*    display: flex;*/
/*    flex-direction: column;*/
/*    margin: auto;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-parent {*/
/*    margin-bottom: 50px;*/
/*    position: relative;*/
/*    display: flex;*/
/*    justify-content: center;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-parent:after {*/
/*    position: absolute;*/
/*    content: '';*/
/*    width: 2px;*/
/*    height: 25px;*/
/*    bottom: 0;*/
/*    left: 50%;*/
/*    background-color: rgba(171, 171, 171, 0.7);*/
/*    transform: translateY(100%);*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-children {*/
/*    display: flex;*/
/*    justify-content: center;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-children .hv-item-child {*/
/*    padding: 0 5px;*/
/*    position: relative;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-children .hv-item-child:before,*/
/*.hv-wrapper .hv-item .hv-item-children .hv-item-child:not(:only-child):after {*/
/*    content: '';*/
/*    position: absolute;*/
/*    background-color: rgba(171, 171, 171, 0.7);*/
/*    left: 0;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-children .hv-item-child:before {*/
/*    left: 50%;*/
/*    top: 0;*/
/*    transform: translateY(-100%);*/
/*    width: 2px;*/
/*    height: 25px;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-children .hv-item-child:after {*/
/*    top: -25px;*/
/*    transform: translateY(-100%);*/
/*    height: 2px;*/
/*    width: 100%;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-children .hv-item-child:first-child:after {*/
/*    left: 50%;*/
/*    width: 50%;*/
/*}*/

/*.hv-wrapper .hv-item .hv-item-children .hv-item-child:last-child:after {*/
/*    width: calc(50% + 1px);*/
/*}*/

/*.management-hierarchy {*/
/*    display: flex;*/
/*    justify-content: center;*/
/*    flex-direction: column;*/
/*    padding: 50px 0;*/
/*    position: relative;*/
/*}*/

/*.hv-container {*/
/*    flex-grow: 1;*/
/*    overflow: auto;*/
/*    justify-content: center;*/
/*}*/

/*.hv-item-parent p {*/
/*    font-weight: bold;*/
/*    color: #DE5454;*/
/*}*/

/*.management-hierarchy .person {*/
/*    text-align: center;*/
/*}*/

/*.management-hierarchy .person a img {*/
/*    height: 70px;*/
/*    width: 70px;*/
/*    border: 5px solid transparent;*/
/*    border-radius: 50%;*/
/*    overflow: hidden;*/
/*    background-color: #fff;*/
/*}*/

/*.management-hierarchy .person img {*/
/*    height: 70px;*/
/*    width: 70px;*/
/*    border: 5px solid transparent;*/
/*    border-radius: 50%;*/
/*    overflow: hidden;*/
/*    background-color: #fff;*/
/*}*/

/*.management-hierarchy .person .name {*/
/*    background-color: #fff;*/
/*    padding: 5px 5px;*/
/*    border-radius: 5px;*/
/*    font-size: .875rem;*/
/*    font-weight: normal;*/
/*    color: #323232;*/
/*    margin: 0;*/
/*    position: relative;*/
/*    max-width: 175px;*/
/*    min-width: 155px;*/
/*    height: 50px;*/
/*    align-items: center;*/
/*    justify-content: center;*/
/*    display: flex;*/
/*    flex-direction: column;*/
/*}*/

/*.management-hierarchy .person .name span {*/
/*    overflow: hidden;*/
/*    display: -webkit-box !important;*/
/*    -webkit-line-clamp: 1;*/
/*    -webkit-box-orient: vertical;*/
/*}*/

/*.management-hierarchy .person p.name .btn {*/
/*    vertical-align: baseline;*/
/*    font-weight: 600;*/
/*}*/

/*.management-hierarchy .person p.name:before {*/
/*    content: '';*/
/*    position: absolute;*/
/*    width: 2px;*/
/*    height: 8px;*/
/*    !*background-color: #fff;*!*/
/*    left: 50%;*/
/*    top: 0;*/
/*    transform: translateY(-100%);*/
/*}*/

.goog-te-gadget {
    color: #fff;
    font-weight: 600;
}

table.dataTable {
    margin-bottom: 15px !important;
    width: 100%;
    white-space: nowrap;
}

.table thead th {
    font-size: 0.8rem;
    text-transform: uppercase;
}

.dataTablesPageSelect {
    text-align: end;
}

#preloader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ffffff8a;
    z-index: 9999
}

#status {
    width: 40px;
    height: 40px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -20px 0 0 -20px
}

.spinner {
    margin: 0 auto;
    font-size: 10px;
    position: relative;
    text-indent: -9999em;
    border-top: 5px solid #dee2e6;
    border-right: 5px solid #dee2e6;
    border-bottom: 5px solid #dee2e6;
    border-left: 5px solid var(--primary);
    transform: translateZ(0);
    animation: SpinnerAnimation 1.1s infinite linear
}

.spinner, .spinner:after {
    border-radius: 50%;
    width: 40px;
    height: 40px
}

@keyframes SpinnerAnimation {
    0% {
        transform: rotate(0)
    }
    100% {
        transform: rotate(360deg)
    }
}

.page-item.active .page-link {
    background-color: var(--primary);
    border-color: var(--primary);
}

.card-widgets .btn-group {
    margin: -10px 10px 0 0;
}

.select2-container--default .select2-results__group {
    color: var(--primary);
}


.text-normal {
    white-space: normal !important;
    word-break: break-all;
}

.card .card-header .card-title-wrap {
    margin-left: -1.5rem;
    padding-left: 1.5rem;
    border-left: 3px solid var(--primary) !important;
}

.readonly {
    background-color: #EFEFEF;
    opacity: 1;
}

.error {
    color: #F44336;
}

@media print {
    .footer, .main-menu, .navbar-custom, .content-header, .right-bar {
        display: none
    }

    .card-body, .content, .content-page, .right-bar, body {
        padding: 0;
        margin: 0
    }

    .invoice-preview {
        width: 100%;
    }
}

.social {
    display: flex;
    align-items: center;
}

.social ul {
    display: flex;
    padding-inline-start: 10px;
    margin-top: 10px;
}

.social ul li a {
    font-weight: 600;
    font-size: 32px;
}

.social ul li::marker {
    content: "";
}

#social-links ul {
    display: flex;
    padding-left: 0;
    margin-bottom: 0;
}

#social-links ul li {
    margin-left: 10px;
}

#social-links ul li span.fab.fa-facebook-square {
    color: #3f78e0;
}

#social-links ul li span.fab.fa-whatsapp {
    color: #73c553;
}

#social-links ul li::marker {
    content: '';
}


.news-item {
    padding: 4px 4px;
    margin: 0;
    border-bottom: 1px dotted #555;
    font-size: 12px;
    line-height: 20px;
}

@media (min-width: 992px) and (max-width: 1366px) {
    .hv-wrapper {
        display: flex;
    }
}

.badge-primary {
    color: #FFF;
    background-color: var(--primary);
}

.popover {
    max-width: 350px;
    font-family: var(--primary-font), sans-serif;
}

.popover .popover-header {
    border: 1px solid var(--primary);
    color: #fff;
}

.popover-header {
    background-color: var(--primary);
    border-bottom: 0 solid var(--primary);
}

.custom-control-input:checked ~ .custom-control-label::before {
    color: #FFF;
    border-color: var(--primary);
    background-color: var(--primary);
}

.custom-control-input:checked ~ .custom-control-label::before {
    color: #fff;
    border-color: var(--primary);
    background-color: var(--primary);
}

.custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: none
}

.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #b1bbc4
}

.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
    color: #fff;
    background-color: var(--primary);
    border-color: var(--primary)
}

.custom-control-input:disabled ~ .custom-control-label, .custom-control-input[disabled] ~ .custom-control-label {
    color: #98a6ad
}

.radio-primary input[type=radio]:checked + label::before {
    border-color: var(--primary);
}

.radio-primary input[type=radio]:checked + label::after {
    background-color: var(--primary);
}

.droplist .dropdown-item:focus {
    color: #fff;
    background: var(--primary);
}

.droplist .dropdown-item:hover {
    color: #fff;
    background: var(--primary);
}

.droplist .dropdown-item.active {
    color: #FFF;
    background-color: var(--primary);
}

.droplist .dropdown-item:active {
    color: #FFF;
    background-color: var(--primary);
}

@media (max-width: 360px) {
    .form-control {
        font-size: 0.875rem;
    }
}

.note-insert {
    display: none
}

.text-break {
    white-space: normal;
    word-break: break-all;
}

.match-height > [class*=col] {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column;
    -ms-flex-flow: column;
    flex-flow: column
}

.match-height > [class*=col] > .card {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto
}

.form-group {
    margin-bottom: 1rem;
}

.heading-elements > a.collapsed i:before {
    content: '\e98c';
}

.layout-menu-collapsed:not(.layout-menu-hover):not(.layout-menu-offcanvas):not(.layout-menu-fixed-offcanvas) .layout-menu .app-brand-logo .logo-sm {
    display: block;
}

.layout-menu-collapsed:not(.layout-menu-hover):not(.layout-menu-offcanvas):not(.layout-menu-fixed-offcanvas) .layout-menu .app-brand-logo .logo-lg {
    display: none;
}

.app-brand .logo-sm {
    display: none;
}

.layout-menu-collapsed:not(.layout-menu-hover):not(.layout-menu-offcanvas):not(.layout-menu-fixed-offcanvas) .layout-menu .app-brand-logo .logo-lg {
    display: none;
}

div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm {
    background-color: var(--primary) !important;
}

div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus {
    box-shadow: 0 0 0 3px var(--primary-rgb) !important;
}

.btn-toggle.dropdown-toggle::after {
    content: none;
}

/*.btn-toggle:focus, .btn-toggle:active, .btn:first-child:active {*/
/*    border: 0;*/
/*}*/

.note-btn-group .note-btn {
    border-color: transparent !important;
}

.note-btn-group.btn-group .btn[class*=btn-]:not([class*=btn-label-]):not([class*=btn-outline-]):not([class*=btn-text-]):not(.btn-icon) {
    box-shadow: none !important;
}

@media (max-width: 767.98px) {
    .layout-navbar-fixed body:not(.modal-open) .layout-content-navbar .layout-navbar, .layout-menu-fixed body:not(.modal-open) .layout-content-navbar .layout-navbar, .layout-menu-fixed-offcanvas body:not(.modal-open) .layout-content-navbar .layout-navbar {
        z-index: 9;
    }
}

.page-title-box .page-title {
    font-size: 1.25rem;
    margin: 0;
    line-height: 75px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.page-title-box .page-title-right {
    float: right;
    margin-top: 20px
}

.page-title-box .breadcrumb {
    padding-top: 8px
}

.page-title-box-sm .page-title {
    line-height: 1 !important;
    margin-bottom: 25px
}

.page-title-box-sm .page-title-right {
    float: right;
    margin-top: 0
}

.page-title-box-sm .breadcrumb {
    padding-top: 0;
    margin-top: -3px !important
}

@media (max-width: 767.98px) {
    .page-title-box .page-title {
        display: block;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        line-height: 70px
    }

    .page-title-box .breadcrumb {
        display: none
    }

    .page-title-box .page-title-right {
        display: none
    }
}

@media (max-width: 419px) {
    .page-title-box .breadcrumb {
        display: none
    }
}

@-webkit-keyframes ticker {
    0% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
    100% {
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

@keyframes ticker {
    0% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
    100% {
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}

.ticker-heading {
    position: absolute;
    background: var(--primary);
    display: block;
    left: 0;
    top: 0;
    height: 2.5rem;
    padding: 11px 10px;
    z-index: 2;
    color: white;
    text-transform: uppercase;
    font-size: 0.875rem;
}

.ticker-wrap .ticker__item:before {
    content: "";
    height: 11px;
    width: 11px;
    display: inline-block;
    background-color: var(--primary);
    border-radius: 100%;
    position: relative;
    margin-right: 15px;
}

.ticker-heading:after {
    content: "";
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 11px solid var(--primary);
    position: absolute;
    margin-left: 10px;
}

.ticker-wrap {
    position: relative;
    bottom: 0;
    width: 100%;
    overflow: hidden;
    height: 2.5rem;
    background-color: transparent;
    padding-left: 100%;
    box-sizing: content-box;
}

.ticker-wrap .ticker:hover {
    -webkit-animation-play-state: paused;
    -moz-animation-play-state: paused;
    -ms-animation-play-state: paused;
    -o-animation-play-state: paused;
    animation-play-state: paused;
}

.ticker-wrap .ticker {
    display: inline-block;
    height: 2.5rem;
    line-height: 2.5rem;
    white-space: nowrap;
    padding-right: 100%;
    box-sizing: content-box;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-name: ticker;
    animation-name: ticker;
    -webkit-animation-duration: 60s;
    animation-duration: 60s;
}

.ticker-wrap .ticker__item {
    display: inline-block;
    padding: 0 2rem;
    font-size: 0.875rem;
}

.gallery {
    position: relative;
    margin-bottom: 20px;
    display: block;
    width: 100%;
    height: 200px;
    text-decoration: none;
}

.gallery img {
    display: block;
    width: 100%;
    height: 100% !important;
    -o-object-fit: cover;
    object-fit: cover;
    border-radius: 10px;
}

.gallery img.gallery-img {
    -o-object-fit: contain;
    object-fit: contain;
}


.statics i {
    font-size: 2rem;
}

.note-frame {
    font-family: inherit !important;
}

.user-profile-header-banner img {
    width: 100%;
    object-fit: cover;
    height: 250px
}

.user-profile-header {
    margin-top: -2rem
}

.user-profile-header .user-profile-img {
    border: 5px solid;
    width: 120px
}

.light-style .user-profile-header .user-profile-img {
    border-color: #fff
}

.dark-style .user-profile-header .user-profile-img {
    border-color: #30334e
}

.dataTables_wrapper .card-header .dataTables_filter label {
    margin-top: 0 !important;
    margin-bottom: 0 !important
}

@media (max-width: 767.98px) {
    .user-profile-header-banner img {
        height: 150px
    }

    .user-profile-header .user-profile-img {
        width: 100px
    }
}

@media (max-width: 767.98px) {
    div.dataTables_wrapper div.dataTables_length label, div.dataTables_wrapper div.dataTables_filter label, div.dataTables_wrapper div.dataTables_info, div.dataTables_wrapper div.dataTables_paginate {
        justify-content: center;
        font-size: 12px;
    }
}

.nav-link.btn.btn-text-secondary i {
    font-size: 1.5rem;
}

.swal2-styled.swal2-confirm {
    background-color: var(--primary);
}

.hv-container {
    overflow-x: auto;
    overflow-y: auto;
    padding: 40px 20px;
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    border-radius: 12px;
    min-height: 500px;
}

.hv-wrapper {
    display: inline-block;
    min-width: 100%;
}

/* Multiple Root Wrapper */
.multi-root-wrapper {
    display: flex;
    flex-direction: row;
    gap: 60px;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
}

.single-root {
    display: inline-block;
    vertical-align: top;
}

/* 👤 Tree Node Structure */
.tree-node {
    position: relative;
    display: inline-block;
    vertical-align: top;
    text-align: center;
    padding: 0 15px;
}

/* 💑 Couple Wrapper */
.couple-wrapper {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px;
}

.couple-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    position: relative;
}

/* 👥 Person Card with Enhanced Design */
.person-card {
    position: relative;
    display: inline-block;
    background: linear-gradient(145deg, #ffffff, #f8f9fa);
    border-radius: 16px;
    padding: 16px;
    min-width: 160px;
    max-width: 180px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 3px solid transparent;
    z-index: 10;
}

.person-card:hover {
    transform: translateY(-8px) scale(1.05);
    box-shadow: 0 16px 48px rgba(0, 88, 30, 0.25);
    border-color: var(--primary);
}

.person-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

/* 📸 Avatar Styling */
.person-avatar {
    width: 90px;
    height: 90px;
    border-radius: 10%;
    margin: 0 auto 12px;
    overflow: hidden;
    border: 4px solid #e0e0e0;
    transition: all 0.3s ease;
    position: relative;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.person-avatar.male {
    border-color: #4A90E2;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.person-avatar.female {
    border-color: #E91E63;
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.person-avatar.other {
    border-color: #9C27B0;
    background: linear-gradient(135deg, #8e44ad 0%, #9b59b6 100%);
}

.person-card:hover .person-avatar {
    border-width: 5px;
    transform: scale(1.1);
}

.person-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 📝 Person Info */
.person-info {
    text-align: center;
}

.person-name {
    font-size: 15px;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 6px;
    line-height: 1.3;
    word-wrap: break-word;
}

.person-relation {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    color: #ffffff;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);
    padding: 4px 12px;
    border-radius: 12px;
    text-transform: capitalize;
    box-shadow: 0 2px 8px rgba(0, 88, 30, 0.3);
}

/* 🎭 Gender Badge */
.person-avatar::after {
    content: '';
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    border: 2px solid white;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.person-avatar.male::after {
    content: '♂';
    color: #4A90E2;
    font-weight: bold;
}

.person-avatar.female::after {
    content: '♀';
    color: #E91E63;
    font-weight: bold;
}

.person-avatar.other::after {
    content: '⚧';
    color: #9C27B0;
    font-weight: bold;
}

/* 💍 Couple Connector (Marriage Line) */
.couple-connector {
    position: relative;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
}

.connector-line {
    width: 50px;
    height: 4px;
    background: linear-gradient(90deg, #E91E63 0%, #FF6B9D 100%);
    position: relative;
    box-shadow: 0 2px 8px rgba(233, 30, 99, 0.3);
}

.connector-line::before {
    content: '💕';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 18px;
    background: white;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* 🌿 Children Branch Connections */
.children-branch {
    position: relative;
    margin-top: 20px;
}

.branch-line-vertical {
    width: 4px;
    height: 40px;
    background: linear-gradient(180deg, var(--primary) 0%, #4CAF50 100%);
    margin: 0 auto;
    border-radius: 2px;
    box-shadow: 0 2px 6px rgba(0, 88, 30, 0.2);
}

.branch-node {
    width: 14px;
    height: 14px;
    background: var(--primary);
    border-radius: 50%;
    margin: -7px auto 0;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0, 88, 30, 0.3);
    position: relative;
    z-index: 5;
}

/* 👶 Children Row */
.children-row {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 30px;
    position: relative;
    margin-top: 20px;
    width: 100%;

}

.horizontal-connector {
    position: absolute;
    top: -20px;
    height: 4px;
    background: linear-gradient(90deg, var(--primary) 0%, #4CAF50 50%, var(--primary) 100%);
    z-index: 1;
    border-radius: 2px;
    box-shadow: 0 2px 6px rgba(0, 88, 30, 0.2);
}

/* Dynamic width based on children count */
.children-row[data-children-count="1"] .horizontal-connector {
    display: none;
}

.children-row[data-children-count="2"] .horizontal-connector {
    left: calc(25% + 15px);
    right: calc(25% + 15px);

}

.children-row[data-children-count="3"] .horizontal-connector {
    left: calc(16.66% + 15px);
    right: calc(16.66% + 15px);
}

.children-row[data-children-count="4"] .horizontal-connector {
    left: calc(12.5% + 15px);
    right: calc(12.5% + 15px);
}

.children-row:not([data-children-count]) .horizontal-connector,
.children-row[data-children-count]:not([data-children-count="1"]) .horizontal-connector {
    left: 10%;
    right: 9%;
}

.child-column {
    position: relative;
    display: inline-block;
}

.child-column::before {
    content: '';
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 20px;
    background: linear-gradient(180deg, var(--primary) 0%, #4CAF50 100%);
    z-index: 2;
    border-radius: 2px;
}

/* 📊 Table View Styling */
/*#memberTable {*/
/*    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);*/
/*    border-radius: 8px;*/
/*    overflow: hidden;*/
/*}*/

/*#memberTable thead th {*/
/*    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);*/
/*    color: white;*/
/*    font-weight: 600;*/
/*    text-transform: uppercase;*/
/*    font-size: 13px;*/
/*    padding: 14px;*/
/*    border: none;*/
/*}*/

#memberTable tbody tr {
    transition: all 0.2s ease;
}

#memberTable tbody tr:hover {
    background-color: #f0f8f4;
    transform: scale(1.01);
    box-shadow: 0 2px 8px rgba(0, 88, 30, 0.1);
}

/* 🎨 Tab Styling */
.nav-tabs .nav-link {
    color: #666;
    font-weight: 600;
    border: none;
    border-bottom: 3px solid transparent;
    transition: all 0.3s ease;
}

.nav-tabs .nav-link:hover {
    color: var(--primary);
    border-bottom-color: var(--primary);
}

.nav-tabs .nav-link.active {
    color: var(--primary);
    background-color: transparent;
    border-bottom: 3px solid var(--primary);
}

/* 📱 Responsive Design */
@media (max-width: 768px) {
    .person-card {
        min-width: 130px;
        max-width: 150px;
        padding: 12px;
    }

    .person-avatar {
        width: 70px;
        height: 70px;
    }

    .person-name {
        font-size: 13px;
    }

    .person-relation {
        font-size: 11px;
        padding: 3px 8px;
    }

    .couple-connector {
        width: 40px;
    }

    .connector-line {
        width: 40px;
    }

    .children-row {
        gap: 20px;
    }

    .multi-root-wrapper {
        gap: 40px;
    }
}

@media (max-width: 480px) {
    .person-card {
        min-width: 110px;
        max-width: 130px;
        padding: 10px;
    }

    .person-avatar {
        width: 60px;
        height: 60px;
    }

    .person-name {
        font-size: 12px;
    }

    .connector-line::before {
        font-size: 14px;
        width: 24px;
        height: 24px;
    }
}

/* ✨ Animation Effects */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.tree-node {
    animation: fadeInUp 0.5s ease-out;
}

.btn-close {
    filter: brightness(0) invert(1);
}

/* 🔄 Loading State */
.hv-container.loading::after {
    content: '🌳 Loading Family Tree...';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 18px;
    font-weight: 600;
    color: var(--primary);
}

/* 🎯 Smooth Scrolling */
.hv-container {
    scroll-behavior: smooth;
}

.hv-container::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.hv-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.hv-container::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 10px;
}

.hv-container::-webkit-scrollbar-thumb:hover {
    background: var(--primary-hover);
}

/* 📌 Person Card Actions (Show on Hover) */
.person-card::before {
    /*content: '👁️ View Profile';*/
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%) scale(0);
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    transition: all 0.3s ease;
    opacity: 0;
    z-index: 100;
}

.person-card:hover::before {
    transform: translateX(-50%) scale(1);
    opacity: 1;
}

/* 🌟 Enhanced Animation for New Members */
@keyframes slideInFromTop {
    from {
        opacity: 0;
        transform: translateY(-30px) scale(0.9);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.tree-node.new-member {
    animation: slideInFromTop 0.6s ease-out;
}

/* 💫 Connection Line Pulse Animation */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.6;
    }
}

.connector-line:hover,
.branch-line-vertical:hover,
.horizontal-connector:hover {
    animation: pulse 1.5s infinite;
}

/* 🎨 Enhanced Branch Node */
.branch-node::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    background: var(--primary);
    border-radius: 50%;
    opacity: 0.2;
    animation: ripple 2s infinite;
}

@keyframes ripple {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.2;
    }
    100% {
        transform: translate(-50%, -50%) scale(2);
        opacity: 0;
    }
}

/* 📱 Better Mobile Optimization */
@media (max-width: 768px) {
    .hv-container {
        padding: 20px 10px;
    }

    .connector-line::before {
        font-size: 16px;
        width: 28px;
        height: 28px;
    }

    .person-card::before {
        font-size: 10px;
        padding: 4px 8px;
    }
}

/* 🎭 Empty State */
.hv-wrapper:empty::before {
    content: '👨‍👩‍👧‍👦 No family members added yet. Click "Add Member" to start building your family tree!';
    display: block;
    text-align: center;
    padding: 60px 20px;
    font-size: 16px;
    color: #666;
    font-weight: 600;
}

/* 🔍 Zoom Controls */
.tree-zoom-controls {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 8px;
    z-index: 1000;
}

.tree-zoom-controls button {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: none;
    background: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    font-size: 18px;
    transition: all 0.3s ease;
}

.tree-zoom-controls button:hover {
    background: var(--primary);
    color: white;
    transform: scale(1.1);
}

#memberTable select {
    min-width: 140px;
}

#memberTable td.editable {
    padding: 6px;
}

.death-icon {
    cursor: pointer;
    font-size: 18px;
    color: #6c757d;
    transition: color 0.2s ease;
}

.death-icon.dead i {
    color: #F44336;
}
