/**
 * CSS layout elements
 *
*/

.grid {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px !important;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%
}

.grid-row {
    background-color: transparent
}

.grid-block {
    box-sizing: border-box;
    background-color: #FFF;
    min-height: 40px
}

.grid-block.empty {
    height: 40px
}

.columns {
    overflow: hidden;
    box-sizing: border-box;
}

.columns .size100 {
    width: 100%;
    float: left
}

.columns .size75 {
    width: 75%;
    float: left
}

.columns .size50 {
    box-sizing: border-box;
    width: 50%;
    float: left
}

.columns .size33 {
    width: 33.33%;
    float: left
}

.columns .size25 {
    width: 25%;
    float: left
}

.clearfix {
    overflow: hidden;
    display: block;
    clear: both
}

.panel {
    position: relative;
    margin-bottom: 15px;
    break-inside: avoid;
    break-before: always;
    break-after: always;
}

.panel .header {
    background-color: #FFF;
    padding: 2.5px 10px;
    position: relative;
    font-weight: bold;
    display: inline-block;
    left: 17.5px;
    top: 10px;
}

.panel .body {
    border: 1px solid #CCC;
    overflow: hidden;
    padding: 20px
}

.panel .body h3 {
    margin-top: 0
}

.panel.dark .header {
    border: 1px solid #808080;
    background-color: #FFF;
}

.panel.dark .body {
    border: 1px solid #808080;
    background-color: #c0c0c0
}

.field {
    border-bottom: 1px solid #CCC;
    border-left: 1px solid #CCC;
    border-top: 1px solid #CCC;
    float: left
}

.field span {
    border-right: 1px solid #CCC;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    font-weight: bold
}

.field.square span {
    height: 35.4px;
    width: 35.4px
}

.emptyField {
    border-bottom: 1px dotted grey;
    min-height: 1em;
    display: block
}

.field.rectangle span {
    height: 2em;
    width: 8em
}

.field.wide-rectangle {
    white-space: nowrap
}

.field.wide-rectangle span {
    display: inline-block;
    height: 2em;
    width: 100%;
}

.pull-left {
    float: left !important
}

.pull-right {
    float: right !important
}

.vertical-text {
    -moz-transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    position: absolute;
    text-align: center;
    font-size: .65em;
    right: -108px;
    width: 200px;
    top: 50%
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

.row-oriented, .column-oriented {
    text-align: left;
    width: 100%
}

.column-oriented {
    margin-bottom: 15px
}

.column-oriented td, 
.column-oriented th {
    padding: 10px
}

.column-oriented thead {
    display: table-header-group
}

.column-oriented thead tr {
    border-top: 1px solid #AFB1B2;
    background-color: #BABDBD;
    border-bottom: 1px solid #AFB1B2;
}

.column-oriented thead.light tr {
    background-color: #FFF;
    color: #AFB1B2
}

.column-oriented tfoot {
    display: table-row-group;
    page-break-inside: avoid;
    break-inside: avoid;
}

.column-oriented tbody {
    border-bottom: 1px solid #DDD;
}

.column-oriented tfoot tr:first-child td {
    border-top: 2px solid #AFB1B2;
    padding-top: 20px !important;
}

.column-oriented .description {
    font-size: 0.8em
}

.panel .row-oriented td, .panel .row-oriented th {
    padding: 8px 10px
}

.row-oriented > tbody > tr > td {
    width: 30%
}

.row-oriented > tbody > tr > th {
    padding-left: 30px;
    width: 70%
}

.row-oriented .description {
    padding: 0 !important;
    font-size: 0.6em;
    color: #888
}

.line {
    border-bottom: 1px solid #DDD;
    border-right: 1px solid #DDD;
    border-left: 1px solid #DDD;
    position: relative;
    margin-left: -1px;
    margin-right: 1px;
    margin-top: 10px;
    padding: 5px 0;
    color: #999;
}

.line .vertical-aligned {
    position: absolute;
    text-align: center;
    width: 100%;
    
}

.line span {
    background-color: #FFF;
    padding: 5px
}