.dg-tree-v3{--dg3-red:#8b1e1e;--dg3-gold:#b48b4e;--dg3-line:#bc9660}
.dg3-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0}
.dg3-toolbar label{color:var(--dg3-red);font-weight:700}
.dg3-toolbar input,.dg3-toolbar button{border:1px solid var(--dg3-gold);border-radius:7px;padding:10px 13px;background:#fff9ed;color:var(--dg3-red)}
.dg3-toolbar button{cursor:pointer}
.dg3-canvas{padding:35px 25px;overflow-x:auto;background:linear-gradient(145deg,#fffaf0,#f0dfbf);border:1px solid #d4b78c;border-radius:12px}
.dg3-root-list,.dg3-child-list{list-style:none;display:flex;align-items:flex-start;justify-content:center;width:max-content;min-width:100%;padding:0;margin:0}
.dg3-root-list{gap:48px}
.dg3-node{position:relative;display:flex;flex-direction:column;align-items:center;padding:12px 14px}
.dg3-household{display:flex;align-items:flex-start;gap:0;position:relative;z-index:1}
.dg3-person{flex:none}
.dg3-partners{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.dg3-partner-row{display:flex;align-items:center}
.dg3-marriage-line{display:block;width:32px;height:2px;background:var(--dg3-gold);flex:none}
.dg3-card{width:168px;min-height:94px;padding:14px 10px;text-align:center;border:1px solid var(--dg3-gold);border-top:4px solid var(--dg3-red);border-radius:9px;background:#fffaf0;box-shadow:0 4px 12px rgba(80,40,15,.1)}
.dg3-card a,.dg3-card strong{display:block;font-weight:700;color:var(--dg3-red);text-decoration:none;overflow-wrap:anywhere}
.dg3-card small{display:block;margin-top:5px;color:#72583c}
.dg3-card-spouse{border-top-color:var(--dg3-gold)}
.dg3-families{display:flex;flex-direction:column;align-items:center;gap:24px;margin-top:14px}
.dg3-family-unit{display:flex;flex-direction:column;align-items:center;position:relative}
.dg3-family-label{font-size:12px;color:#795a34;background:#fff3db;border:1px solid #d7b78b;border-radius:15px;padding:5px 12px;white-space:nowrap}
.dg3-descendants{display:flex;flex-direction:column;align-items:center;margin-top:0}
.dg3-stem{height:22px;border-left:2px solid var(--dg3-line)}
.dg3-child-list{position:relative;gap:16px}
.dg3-child-list:has(>.dg3-node:nth-child(2))::before{content:"";position:absolute;top:0;left:calc(14px + 84px);right:calc(14px + 84px);border-top:2px solid var(--dg3-line)}
.dg3-child-list>.dg3-node::before{content:"";position:absolute;top:0;left:50%;height:12px;border-left:2px solid var(--dg3-line)}
.dg3-descendants[hidden]{display:none!important}
.dg3-highlight{background:#ffedb0;box-shadow:0 0 0 4px rgba(180,139,78,.28)}
@media(max-width:768px){.dg3-card{width:145px}.dg3-canvas{padding:20px 10px}}

/* DG3-HORIZONTAL-FAMILY-START */

/* Nhom cac gia dinh song song, khong xep doc */
.dg-tree-v3 .dg3-families {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
    gap: 34px;
    width: max-content;
    max-width: none;
    margin-top: 22px;
}

/* Moi nhom phoi ngau va con co mot cot rieng */
.dg-tree-v3 .dg3-family-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    flex: 0 0 auto;
    min-width: 180px;
    position: relative;
}

/* Nhan quan he cung hang */
.dg-tree-v3 .dg3-family-label {
    min-height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    margin-bottom: 0;
}

/* Duong noi tu nhan gia dinh xuong cac con */
.dg-tree-v3 .dg3-descendants {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 0;
    width: max-content;
}

.dg-tree-v3 .dg3-stem {
    display: block;
    width: 0;
    height: 30px;
    border-left: 1.5px solid #b48b4e;
    margin: 0 auto;
}

/* Cac con cung cha me xep ngang */
.dg-tree-v3 .dg3-child-list {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
    width: max-content;
    min-width: 0;
    gap: 22px;
    position: relative;
}

/* Nhanh con duoc can theo tam */
.dg-tree-v3 .dg3-child-list > .dg3-node {
    flex: 0 0 auto;
}

/* Giu duong noi vang dong */
.dg-tree-v3 .dg3-marriage-line {
    border-color: #b48b4e;
    background-color: #b48b4e;
}

/* Cho phep cuon ngang khi cay rong */
.dg-tree-v3 .dg3-canvas {
    overflow-x: auto;
    overflow-y: visible;
}

.dg-tree-v3 .dg3-root-list {
    width: max-content;
    min-width: 100%;
    align-items: flex-start;
}

/* DG3-HORIZONTAL-FAMILY-END */
/* DG3-V31-CSS-START */
.dg-tree-v3 .dg3-canvas { position:relative; isolation:isolate; }
.dg-tree-v3 .dg3-connectors { position:absolute; left:0; top:0; z-index:0; pointer-events:none; overflow:visible; }
.dg-tree-v3 .dg3-connectors line { stroke:#b48b4e; stroke-width:1.6; fill:none; vector-effect:non-scaling-stroke; }
.dg-tree-v3 .dg3-node { z-index:1; }
.dg-tree-v3 .dg3-family-label { position:relative; z-index:2; }
.dg-tree-v3 .dg3-household { box-sizing:border-box; }
.dg-tree-v3 .dg3-stem { visibility:hidden; }
.dg-tree-v3 .dg3-child-list::before,
.dg-tree-v3 .dg3-child-list > .dg3-node::before { display:none!important; }
.dg-tree-v3 .dg3-families { align-items:flex-start; }
/* DG3-V31-CSS-END */