* {
     box-sizing: border-box;
     padding: 0;
     margin: 0;
 }

html,
body {
    height: 100%;
}

#bxcr-configurator,
#bxcr-configurator-header,
#bxcr-configurator-content,
#bxcr-configurator-footer,
#xcr-configurator-frame {
    position: relative;
    width: 100%;
}

#xcr-configurator-frame {
    position: relative;
    height: 100%;
    border: none;
    display: block;
}

#bxcr-configurator {
    height: 100%;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: stretch;
    align-content: stretch;
}

#bxcr-configurator-header,
#bxcr-configurator-footer {
    display: none;
    padding: 0 25px;
}

#bxcr-configurator-header,
#bxcr-configurator-content,
#bxcr-configurator-footer {
    flex: 0 0 auto;
}

#bxcr-configurator-sidebar-left,
#bxcr-configurator-sidebar-right {
    display: none;
}

#bxcr-configurator-content {
    flex-grow: 1;
}

body.show-header {
    #bxcr-configurator-header {
        display: flex;
        min-height: 50px;
    }
}

body.show-footer {
    #bxcr-configurator-footer {
        display: flex;
        min-height: 50px;
    }
}

/* Header and Footer components */
#bxcr-configurator-header,
#bxcr-configurator-footer {
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: flex-end;
    align-content: stretch;
}

#bxcr-configurator-header .bxcr-component,
#bxcr-configurator-footer .bxcr-component {
    margin: 10px;
}

.bxcr-component button {
    padding: 10px;
}