
.dd_vertical_centralizer {
    height: 100%; 
    display: flex;
    align-items: center;
}

.dd_horizontal_centralizer {
    width: 100%; 
    display: flex;
    flex-direction: column;
    align-items: center; 
}

.dd_stacker_bottom_up {
    display: flex;
    flex-direction: column-reverse;
}

.dd_stacker_top_bottom {
    display: flex;
    flex-direction: column;
}

.dd_stacker_right_left {
    display: flex;
    flex-direction: row-reverse;
}

.dd_stacker_left_right {
    display: flex;
}

.dd_label_input_pair {
    display: flex;
    flex-wrap: wrap; 
    justify-content: center;
    margin-bottom: 0.4rem;
}

.dd_label_input_pair label {
    font-weight: bold;
    margin: 0;
}
.dd_label_input_pair input {
    width: 212px;
}

.dd_display_none {
    display: none !important;
}

.dd_visibility_hidden {
    visibility: hidden !important;
}

dd_table {
    --gap: 0;
    --colgap: var(--gap);
    --rowgap: var(--gap);
    
    --default-col-width: auto;
    --c1: var(--default-col-width);
    --c2: var(--default-col-width);
    --c3: var(--default-col-width);
    --c4: var(--default-col-width);
    
    --c1-display: block;
    --c2-display: block;
    --c3-display: block;
    --c4-display: block;
    
    --c1-weight: ;
    
    --c1-margin-bottom: ;
    --c2-margin-bottom: ;
    --c3-margin-bottom: ;
    --c4-margin-bottom: ;
    
    --header2-display: ;
    --border-top: ;
    
    --header-size: inherit;
    
    display: grid;
    gap: var(--colgap) var(--rowgap);
}

dd_table.cols1 {grid-template-columns: var(--c1);}
dd_table.cols2 {grid-template-columns: var(--c1) var(--c2);}
dd_table.cols3 {grid-template-columns: var(--c1) var(--c2) var(--c3);}
dd_table.cols4 {grid-template-columns: var(--c1) var(--c2) var(--c3) var(--c4);}

/* Column Display */
dd_table.cols2 > cell:nth-of-type(2n+1) {display: var(--c1-display);}
dd_table.cols2 > cell:nth-of-type(2n+2) {display: var(--c2-display);}

dd_table.cols3 > cell:nth-of-type(3n+1) {display: var(--c1-display);}
dd_table.cols3 > cell:nth-of-type(3n+2) {display: var(--c2-display);}
dd_table.cols3 > cell:nth-of-type(3n+3) {display: var(--c3-display);}

dd_table.cols4 > cell:nth-of-type(4n+1) {display: var(--c1-display);}
dd_table.cols4 > cell:nth-of-type(4n+2) {display: var(--c2-display);}
dd_table.cols4 > cell:nth-of-type(4n+3) {display: var(--c3-display);}
dd_table.cols4 > cell:nth-of-type(4n+4) {display: var(--c4-display);}

/* Column margin bottom */
dd_table.cols1 > cell:nth-of-type(1n+1) {margin-bottom: var(--c1-margin-bottom);}
dd_table.cols2 > cell:nth-of-type(2n+1) {margin-bottom: var(--c1-margin-bottom);}
dd_table.cols3 > cell:nth-of-type(3n+1) {margin-bottom: var(--c1-margin-bottom);}
dd_table.cols4 > cell:nth-of-type(4n+1) {margin-bottom: var(--c1-margin-bottom);}

dd_table.cols2 > cell:nth-of-type(2n+2) {margin-bottom: var(--c2-margin-bottom);}
dd_table.cols3 > cell:nth-of-type(3n+2) {margin-bottom: var(--c2-margin-bottom);}
dd_table.cols4 > cell:nth-of-type(4n+2) {margin-bottom: var(--c2-margin-bottom);}

dd_table.cols3 > cell:nth-of-type(3n+3) {margin-bottom: var(--c3-margin-bottom);}
dd_table.cols4 > cell:nth-of-type(4n+3) {margin-bottom: var(--c3-margin-bottom);}

dd_table.cols4 > cell:nth-of-type(4n+4) {margin-bottom: var(--c4-margin-bottom);}

/* C1 Font Weight */
dd_table.cols1 > cell:nth-of-type(1n+1) {font-weight: var(--c1-weight);}
dd_table.cols2 > cell:nth-of-type(2n+1) {font-weight: var(--c1-weight);}
dd_table.cols3 > cell:nth-of-type(3n+1) {font-weight: var(--c1-weight);}
dd_table.cols4 > cell:nth-of-type(4n+1) {font-weight: var(--c1-weight);}

dd_table > *.header {
    font-size: var(--header-size);
    color: var(--header-color);
    font-weight: var(--header-weight);
    text-transform: var(--header-transform)
}

dd_table.cols2 > cell.header:nth-of-type(2n+2) {display: var(--header2-display);}
dd_table.cols3 > cell.header:nth-of-type(3n+2) {display: var(--header2-display);}
dd_table.cols4 > cell.header:nth-of-type(4n+2) {display: var(--header2-display);}
