#ppm-pedigree-builder {
    position: relative;
    overflow:auto;
}

.ppm-pedigree-canvas {
    position: relative;
    /*min-height: 1435px;*/
    overflow: visible;
   
    background: #fff;
    padding: 20px;
    
        width: 794px;
    height: 1123px;
    /*background:gray;*/
}

.ppm-node {
    position: absolute;
    width: 180px;
    height: 231px;
    background: #f9f9f9;
    border: 1px solid #ccc;
    padding: 2px;
    box-sizing: border-box;
}

.ppm-node input[type=text], .ppm-node textarea {
    padding:0px 5px;
    margin-bottom:0;
}

.ppm-node input[type=text] {
    height:35px;
}

.ppm-node.male {
    /*border-left: 5px solid var(--ast-global-color-0);*/
}

.ppm-node.female {
    /*border-left: 5px solid var(--ast-global-color-0);*/
}

.ppm-node-header {
    font-weight: bold;
    font-size: 12px;
    margin-bottom: 4px;
}

.ppm-node input,
.ppm-node textarea {
    width: 100%;
    font-size: 12px;
    margin-bottom: 4px;
}

.ppm-node textarea {
    height: 190px;
    resize: none;
}

.ppm-actions {
    text-align: right;
}

.ppm-actions button {
    font-size: 11px;
    padding: 2px 6px;
}

.ppm-line {
    position: absolute;
    height: 2px;
    background: #555;
    transform-origin: left center;
}

.ppm-color {
    padding: 0;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--ast-border-color) !important;
    width: 20px !important;
    height: 15px !important;
    position: absolute;
    top: 10px;
    right: 10px;
}

#pedigree-import-canvas {
    display:none;
    border:1px solid #ccc;
    max-width: 100%;
    /*width:100%;*/
    height: auto;
}

.pedigree-import-form {
    background: #F5F5F5;
    padding: 5px 20px 20px 20px;
    margin-top: 30px;
}

.pedigree-import-form #extract-json {
    margin-top: 20px;
}

#pedigree-loading {
    display:none; position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); z-index:9999; background:rgba(0,0,0,0.7); color:white; padding:20px; border-radius:10px; font-size:18px;
}

.spinner {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 3px solid #fff;
    border-top: 3px solid #888;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-right: 10px;
    vertical-align: middle;
}

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

/* Pedigree node shadow */
.node-shadow::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    box-shadow: 4px 4px 10px rgba(0,0,0,0.5);
    z-index: -1;
}