.ddk-container .layout-header {
    display: flex;
    align-items: center;

    height: 60px;
    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
    margin-bottom: 15px;
}

.ddk-container .layout-header img {
    max-height: 100%;
}

.ddk-container .layout-header li,
.ddk-container .layout-sidebar li {
    margin-left: 0px;
    padding-left: 0px;
    margin-bottom: 0px;
}

.ddk-container .layout-sidebar li.menu--sub {
    cursor: pointer;
}

.ddk-container .reset-layout {
    cursor: pointer;
    font-size: 24px;
}
.ddk-container .draggable-handle {
    font-size: 20px;
    cursor: move;
    color: white;
}

/* layout menu */
.ddk-container .layout-sidebar .layout-menu ul {
    list-style-type: none;
    margin-bottom: 0;
    display: flex;
}

.ddk-container .layout-sidebar .layout-menu li {
    display: flex;
    align-items: center;
    margin: 2px;
}

.ddk-container .layout-sidebar .layout-menu li a {
    width: 100%;
    height: 100%;
    text-align: center;
    padding: 8px;
    text-decoration: none;
    display: flex;
    justify-content:center;
    align-content:center;
    flex-direction:column;
}

/* header menu */
.ddk-container .layout-header {
    display: flex;
    position: relative;
}

.ddk-container .menu-item a {
    text-decoration: none;
}

.ddk-container .layout-sidebar #menu-items-container .menu--sub > .menu-item a {
    flex-direction: row-reverse;
    justify-content: flex-end;
}

.ddk-container .layout-sidebar #menu-items-container .menu--sub > .menu-item a .caret {
    left: 0px;
    margin-right: 15px; /* approx spacing of icon */
}

.ddk-container .layout-sidebar nav[data-folded="false"] #menu-items-container .menu--sub > .menu-item a .caret {
    margin-left: 10px;
}

.ddk-container .layout-sidebar[data-foldable="false"] .toggleNarrow {
    display: none;
}

.ddk-container .layout-sidebar nav {
    transition: max-width cubic-bezier(0, 1.26, 1, 0.94) 0.15s;
    max-width: 500px;
}

.ddk-container .layout-sidebar nav[data-folded="true"] {
    max-width: 60px;
}

.ddk-container .layout-sidebar nav[data-folded="true"] ~ div {
    display: none;
}

.ddk-container .layout-sidebar nav[data-folded="true"] ul {
    overflow-x: hidden;
}

.ddk-container .layout-sidebar nav[data-folded="true"] #menu-items-container .menu-item a {
    visibility: hidden;
}


.ddk-container .layout-sidebar nav[data-folded="true"] #menu-items-container .menu-item a i {
    visibility: visible;
    padding: 7.5px;
}

.ddk-container .layout-sidebar nav[data-folded="true"] #menu-items-container .menu-item a .caret {
    visibility: visible;
    position: absolute;
    left: 24px;
}

.ddk-container .layout-header .layout-logo {
    height: 100%;
    width: auto;
    position: relative;
}

.ddk-container .layout-sidebar .layout-logo img {
    max-width: 100%;
    /*
     * User supplied heights in the logo
     * are applied to the logo's parent div.
     * So, in a sidebar, let the img inherit those
     * user defined heights.
     */
    height: inherit;
}

.ddk-container .layout-title {
    font-size: 24px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 0px 20px;
    display: inline-block;
    flex-basis: auto;
    overflow: hidden;
    z-index: 100;
    height: 100%;
    padding-right: 15px;
}

.ddk-container .layout-sidebar .layout-title {
    padding-top: 20px;
    padding-bottom: 20px;
    padding-left: 10px;
    padding-right: 10px;
    display: flex;
}

.ddk-container .layout-sidebar .layout-title .title {
    width: 100%;
    text-align: center;
}

.ddk-container .layout-title::before {
    content: '';
    display: inline-block;
}

.ddk-container .layout-header .layout-title .title {
    display: inline-block;
    vertical-align: top;
    height: inherit;
}

.ddk-container .layout-title h1 {
    display: inline-block;
    white-space: nowrap;
}

.ddk-container .layout-logo img {
    padding: 5px;
}

.ddk-container .layout-header .layout-logo img {
    /*
     * 15px adds up to the default card margin, so the left edge of the
     * logo matches up with the left side of the card
     */
    margin-left: 10px;
    max-height: 100%;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

.ddk-container .layout-header > div:not(.layout-logo):not(.layout-title) {
    flex: 1;
}

.ddk-container .layout-header nav#menu {
    display: inline-flex;
    justify-content: flex-end;
    margin-left: auto;
    flex: 1;
    min-width: 30px;
}

.ddk-container .layout-header > nav#menu {
    height: 100%;
}

.ddk-container .layout-header nav#menu[data-open="true"] {
    overflow: visible;
}

.ddk-container .layout-header nav#menu[data-collapsed="true"] {
    position: relative;
    display: inline-flex;
}

.ddk-container .layout-header nav#menu[data-collapsed="false"] {
    flex: initial;
    flex-basis: auto;
}

.ddk-container .layout-header nav ul {
    white-space: nowrap; /* we want overflow in order to compare the menu's scrollWidth and clientWidth */
    list-style-type: none;
    margin: 0;
    padding: 0;
    list-style-type: none;
    position: relative;
    max-height: 200%;
}

.ddk-container .layout-header nav li {
    display: inline-block;
    margin-bottom: 0px;
    height: 100%;
    z-index: 3;
}

.ddk-container .layout-header nav > li {
    display: flex;
    align-items: center;
    border: none;
}

.ddk-container .layout-header nav a {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    white-space: nowrap;
    padding: 0px 15px;
}

.ddk-container .layout-header nav a:hover {
    text-decoration: none;
}

.ddk-container .layout-header nav#menu[data-open=true] a {
    padding: 10px 15px;
}

.ddk-container .layout-header nav#menu .menu--sub nav#menu a {
    padding: 10px 15px 10px 5px;
}

.ddk-container .layout-header nav .menu--sub a .caret {
    /* for centering; 11px = caret dimensions */
    margin-right: 11px;
}

.ddk-container .layout-header nav#menu[data-collapsed="false"] .menu--sub:hover a .caret {
    transform: rotate(135deg) scaleX(-1);
    transition: transform 0.2s linear 0s;
}

.ddk-container .layout-header nav#menu[data-open="true"][data-collapsed="true"] {
    padding: 0;
}

.ddk-container .layout-header nav#menu[data-open="true"][data-collapsed="true"] ul {
    max-height: none;
    position: absolute;
    top: 100%;
}

.ddk-container .layout-header nav#menu[data-open="true"][data-collapsed="true"] li {
    display: block;
}

.ddk-container .layout-header nav#menu[data-open="true"][data-collapsed="true"] li div {
    display: block;
}

.ddk-container .layout-header nav#menu #menu-items-container {
    height: 100%;
    position: relative;
}

.ddk-container .layout-header nav#menu[data-open="false"][data-collapsed="true"] #menu-items-container {
    /* hide full-width menu but keep display so it can be measured */
    visibility: hidden;
    position: absolute;
    /* prevent x overflow on container */
    right: 100%;
}

.ddk-container nav#menu #btn-close-menu {
    display: none;
}

.ddk-container nav#menu[data-open="true"] #btn-close-menu {
    display: block;
}

.ddk-container .layout-header {
    display: flex;
    justify-content: flex-start;
    flex: 1;
}

.ddk-container .layout-header #menu {
    header: inherit;
}

.ddk-container .layout-header .menu--sub {
    position: relative;
}

.ddk-container .layout-header .menu--sub nav#menu {
    position: absolute;
    overflow: hidden;
    display: block;
    min-width: 100%;
    top: 100%;
    right: 0;
    max-height: 0px;
}


.ddk-container .layout-header .menu--sub:hover nav#menu {
    transition: max-height 0.5s linear;
    max-height: 500px;
}

.ddk-container .layout-header ul#menu-closed .menu--sub[data-open="true"] nav#menu {
    min-width: 100%;
}

.ddk-container .layout-header nav#menu[data-open=true][data-collapsed="true"] ul#menu-closed .menu--sub:hover nav#menu {
    top: 0px;
    overflow: visible;
}

.ddk-container .layout-header ul#menu-closed .menu--sub[data-open="true"] nav#menu ul#menu-closed {
    min-width: 100%;
}

.ddk-container .layout-header nav#menu[data-collapsed="true"] ul#menu-closed .menu--sub:hover nav#menu ul#menu-closed {
    right: 100%;
}

.ddk-container .layout-header ul#menu-closed nav#menu #menu-items-container {
    padding: 0;
}

.ddk-container .layout-header ul#menu-closed nav#menu .menu--sub nav#menu a {
    padding: 15px 5px;
}

.ddk-container .layout-header .menu--sub nav#menu .menu-item {
    display: block;
    padding: 10px;
}

.ddk-container .layout-header nav#menu[data-collapsed="true"] .menu--sub nav#menu .menu-item {
    padding: 2px 10px;
}

.ddk-container .layout-header nav#menu[data-collapsed="true"] .menu--sub nav#menu .menu-item:first-of-type {
    box-shadow: 1px 0 0 #f2f5fa;
}

/* Layout Header w Controls */
.ddk-container .layout-header .block.card {
    height: inherit;
}

/* Layout Sidebar */

.ddk-container .layout-sidebar .sidebar--content[folded] > *:not(nav) {
    display: none;
}

.ddk-container .layout-sidebar ul {
    display: flex;
    flex-direction: column;
    list-style-type: none;
    position: relative;
}

.ddk-container .layout-sidebar ul .menu--sub ul {
    margin: 0;
}

.ddk-container .layout-sidebar ul a {
    padding: 15px;
}

.ddk-container .layout-sidebar .menu--sub nav#menu {
    max-height: 0px;
    overflow-y: hidden;
    transition: max-height 0.5s ease-out;
}

.ddk-container .layout-sidebar .menu--sub[data-open="true"] nav#menu {
    max-height: 1000px;
}

.ddk-container .layout-sidebar .menu--sub[data-open="true"] .caret {
    transform: rotate(135deg) scaleX(-1);
    -webkit-transform: rotate(135deg) scaleX(-1);
}

.ddk-container .sidebar--content {
    transition: width 0.25s, opacity 0.25s;
}

.ddk-container .layout-sidebar {
    position: relative;
    display: inline-block;
    flex-direction: column;
    transition: width 0.05s ease-out;
    float: left;
}

.ddk-container .layout-sidebar-companion {
    width: auto;
    display: block;
    overflow: hidden;
}

@media only screen
    and (min-width: 0px)
    and (max-width: 500px) {
        .ddk-container .layout-sidebar[data-collapsed="true"] .sidebar--content {
            opacity: 0;
            overflow: hidden;
            padding: 0px;
        }

        .ddk-container .layout-sidebar {
            width: 100% !important;
            max-width: none;
        }

        .ddk-container .layout-sidebar[data-collapsed="true"] {
            width: 0% !important;
            padding: 0px;
        }

        .ddk-container .layout-sidebar .layout-menu ul {
            display: flex;
            flex-direction: column;
        }
}

.ddk-container .body-component {
    float:right;
    width: 85%;
    display: inline-block;
}

.ddk-container .card h1,
.ddk-container .card h2,
.ddk-container .card h3,
.ddk-container .card h4,
.ddk-container .card h5,
.ddk-container .card h6,
.ddk-container .card p,
.ddk-container .card h1 div,
.ddk-container .card h2 div,
.ddk-container .card h3 div,
.ddk-container .card h4 div,
.ddk-container .card h5 div,
.ddk-container .card h6 div,
.ddk-container .card p div {
    overflow: hidden;
    text-overflow: ellipsis;
}

.ddk-container .card header.card-header > .card-header--title,
.ddk-container .card footer.card-footer > .card-footer--title {
    display: inline-flex;
    flex: 1;
    align-items: center;
}

/* KEBAB MENU CSS */

.ddk-container .dots {
  position: relative;
  right: 20px;
  height: 100%;
  cursor: pointer;
  /* centering */
  display: flex;
  align-items: center;
  justify-content: center;
}

.ddk-container .dot,
.ddk-container .dot:before,
.ddk-container .dot:after {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 20px;
  background-color: #fff;
  transform: rotate(270deg);
  cursor: pointer;
}

.ddk-container .dot {
  position: relative;
}

.ddk-container .dot:before,
.ddk-container .dot:after {
  content: "";
}

.ddk-container .dot:before {
  right: 10px;
  transition: right .3s ease-out, width .3s ease-out;
}

.ddk-container .dot:after {
  left: 10px;
  transition: left .3s ease-out, width .3s ease-out;
}

.ddk-container .dots:hover .dot:before {
  right: -10px;
}

.ddk-container .dots:hover .dot:after {
  left: -10px;
}

.ddk-container .dots.checked .dot:before {
  right: -9px;
  width: 22px;
  transform: rotate(225deg);
}

.ddk-container .dots.checked .dot:after {
  left: -9px;
  width: 22px;
  transform: rotate(135deg);
}

/* TOGGLE NARROW ICON */
.ddk-container .toggleNarrow {
    text-align: center;
}

/* HAMBURGER CSS */
/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */
.ddk-container .hamburger {
  display: inline-block;
  cursor: pointer;
  transition-property: opacity, filter;
  transition-duration: 0.15s;
  transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible; }
  .ddk-container .hamburger:hover {
    opacity: 0.7; }
  .ddk-container .hamburger.is-active:hover {
    opacity: 0.7; }
  .ddk-container .hamburger.is-active .hamburger-inner,
  .ddk-container .hamburger.is-active .hamburger-inner::before,
  .ddk-container .hamburger.is-active .hamburger-inner::after {
    background-color: #000; }

.ddk-container .hamburger-box {
  width: 20px;
  height: 24px;
  display: inline-block;
  position: relative; }

.ddk-container .hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -2px; }
  .ddk-container .hamburger-inner, .ddk-container .hamburger-inner::before, .ddk-container .hamburger-inner::after {
    width: 20px;
    height: 2px;
    background-color: #000;
    border-radius: 2px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease; }
  .ddk-container .hamburger-inner::before, .ddk-container .hamburger-inner::after {
    content: "";
    display: block; }
  .ddk-container .hamburger-inner::before {
    top: -5px; }
  .ddk-container .hamburger-inner::after {
    bottom: -5px; }

/*
 * Minus
 */
.ddk-container .hamburger--minus .hamburger-inner::before, .ddk-container .hamburger--minus .hamburger-inner::after {
  transition: bottom 0.2s 0s ease-out, top 0.2s 0s ease-out, opacity 0s linear; }

.ddk-container .hamburger--minus.is-active .hamburger-inner::before, .ddk-container .hamburger--minus.is-active .hamburger-inner::after {
  opacity: 0;
  transition: bottom 0.2s ease-out, top 0.2s ease-out, opacity 0s 0.2s linear; }

.ddk-container .hamburger--minus.is-active .hamburger-inner::before {
  top: 0; }

.ddk-container .hamburger--minus.is-active .hamburger-inner::after {
  bottom: 0; }

/* Modal and FullScreen */

.modal--backdrop {
    position: fixed;
    cursor: pointer;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    margin: 0px;
    background-color: rgba(0,0,0,0.2);
    z-index: 1010;
}

.modal--container .expandToFull--modal {
    display: none;
}

.modal--inner {
    z-index: 1011;
    display: inline-block;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 90%;
    max-height: 90%;
}

.ddk-container .expandToFull,
.ddk-container .copyText {
    cursor: pointer;
    padding: 5px;
}

.ddk-container .expandToFull svg,
.ddk-container .copyText svg {
    width: 25px;
}

.ddk-container .expandToFull .cls-1 {
    transition: 0.2s transform;
}

/* Transitions for modal/fullscreen icon states */

/* Group 1 */

.ddk-container .expandToFull--fullscreen[data-expanded='false']:hover svg .cls-1:nth-child(3) {
    transform: translate(-9px,-9px);
    transform-origin: top;
}

.ddk-container .expandToFull--fullscreen[data-expanded='true'] svg .cls-1:nth-child(3),
.ddk-container .expandToFull--modal[data-expanded='true'] svg .cls-1:nth-child(1) {
    transform: rotateX(90deg) rotateZ(90deg) rotateY(-90deg) translate(-6px,-6px);
    transform-origin: top;
}

.ddk-container .expandToFull--fullscreen:hover[data-expanded='true'] svg .cls-1:nth-child(3) {
    transform: rotateX(90deg) rotateZ(90deg) rotateY(-90deg) translate(-14px,-14px);
    transform-origin: top;
}

/* Group 2 */

.ddk-container .expandToFull--fullscreen[data-expanded='false']:hover svg .cls-1:nth-child(6),
.ddk-container .expandToFull--modal[data-expanded='false']:hover svg .cls-2:nth-child(2) {
    transform: translate(9px,-9px);
    transform-origin: top;
}

.ddk-container .expandToFull--fullscreen[data-expanded='true'] svg .cls-1:nth-child(6),
.ddk-container .expandToFull--modal[data-expanded='true'] svg .cls-2:nth-child(2) {
    transform: rotateX(-90deg) rotateZ(-90deg) rotateY(-90deg) translate(6px,-6px);
    transform-origin: top;
}

.ddk-container .expandToFull--fullscreen[data-expanded='true']:hover svg .cls-1:nth-child(6) {
    transform: rotateX(-90deg) rotateZ(-90deg) rotateY(-90deg) translate(14px,-14px);
    transform-origin: top;
}

.ddk-container .expandToFull--modal[data-expanded='true']:hover svg .cls-2:nth-child(2) {
    transform: rotateX(-90deg) rotateZ(-90deg) rotateY(-90deg) translate(12px,-16px);
    transform-origin: top;
}

/* Group 3 */

.ddk-container .expandToFull--fullscreen[data-expanded='false']:hover svg .cls-1:nth-child(9),
.ddk-container .expandToFull--modal[data-expanded='false']:hover svg .cls-2:nth-child(4) {
    transform: translate(-9px,9px);
    transform-origin: bottom;
}

.ddk-container .expandToFull--fullscreen[data-expanded='true'] svg .cls-1:nth-child(9),
.ddk-container .expandToFull--modal[data-expanded='true'] svg .cls-2:nth-child(4) {
    transform: rotateX(-90deg) rotateZ(-90deg) rotateY(-90deg) translate(-6px,6px);
    transform-origin: bottom;
}

.ddk-container .expandToFull--fullscreen[data-expanded='true']:hover svg .cls-1:nth-child(9) {
    transform: rotateX(-90deg) rotateZ(-90deg) rotateY(-90deg) translate(-14px,14px);
    transform-origin: bottom;
}

.ddk-container .expandToFull--modal[data-expanded='true']:hover svg .cls-2:nth-child(4) {
    transform: rotateX(-90deg) rotateZ(-90deg) rotateY(-90deg) translate(-16px,12px);
    transform-origin: bottom;
}

/* Group 4 */

.ddk-container .expandToFull--fullscreen[data-expanded='false']:hover svg .cls-1:nth-child(12) {
    transform: translate(9px,9px);
    transform-origin: bottom;
}

.ddk-container .expandToFull--fullscreen[data-expanded='true'] svg .cls-1:nth-child(12),
.ddk-container .expandToFull--modal[data-expanded='true'] svg .cls-1:nth-child(3) {
    transform: rotateX(-90deg) rotateZ(90deg) rotateY(90deg) translate(6px,6px);
    transform-origin: bottom;
}

.ddk-container .expandToFull--fullscreen[data-expanded='true']:hover svg .cls-1:nth-child(12) {
    transform: rotateX(-90deg) rotateZ(90deg) rotateY(90deg) translate(14px,14px);
    transform-origin: bottom;
}

/* Hide fullscreen button on modal */
.ddk-container .card #modalContainer .expandToFull--fullscreen {
    display: none;
}

/* Hide modal button on fullscreen */
.ddk-container .card:fullscreen .expandToFull--modal {
    display: none;
}

.hidden {
    /* We do this instead of 'display: none'
       because plotly will measure based on rendered size */
    position: absolute; top: -9999px; left: -9999px;
}

/* Ensure print display rendering is more accurate
   see https://stackoverflow.com/questions/3893986/css-media-print-issues-
       with-background-color/14784655#14784655 */
.ddk-container {
    color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
}

/* Set height of fullscreen graphs based on the number of siblings */

/* one graph */
.fullscreen--cb.fullscreenGraph .js-plotly-plot:first-of-type:nth-last-of-type(1),
#modalContainer .modal--cb .js-plotly-plot:first-of-type:nth-last-of-type(1) {
  height: 100%;
}

/* two graphs */
.fullscreen--cb.fullscreenGraph .js-plotly-plot:first-of-type:nth-last-of-type(2),
.fullscreen--cb.fullscreenGraph .js-plotly-plot:first-of-type:nth-last-of-type(2) ~ .js-plotly-plot,
#modalContainer .modal--cb .js-plotly-plot:first-of-type:nth-last-of-type(2),
#modalContainer .modal--cb .js-plotly-plot:first-of-type:nth-last-of-type(2) ~ .js-plotly-plot {
    max-height: calc(50% - (52px/2)); /* 50px = height of Card header */
}

/* three graphs */
.fullscreen--cb.fullscreenGraph .js-plotly-plot:first-of-type:nth-last-of-type(3),
#modalContainer .modal--cb .js-plotly-plot:first-of-type:nth-last-of-type(3) ~ .js-plotly-plot {
    height: calc((100%/3) - (52px/3));
}

/* Copy icon + tooltip */

.copyText svg .cls-1,
.copyText svg .cls-2 {
    transition: all 0.5s ease;
}

.copyText svg .cls-3 {
    opacity: 0;
    transition: all 0.5s ease;
    transform: translate(15px,-12px);
}

.copyText.copied svg .cls-3 {
    opacity: 1;
    transform: translate(0px,0px);
}

.copyText {
    position: relative;
}

.copyText > div > div {
   display: flex;
   align-items: center;
}

.copyText.copied:before {
    content: "";
    position: absolute;
    left:50%;
    transform: translateX(-50%);
    border-width: 4px 6px 0 6px;
    border-style: solid;
    border-color: rgba(0,0,0,0.7) transparent transparent transparent;
    z-index: 100;
    top: calc(100% + 1px);
    transform: translateX(-50%) translatey(-100%) rotate(-180deg)
}

.copyText.copied:after {
    content: "Text copied to clipboard";
    position: absolute;
    top:100%;
    transform: translateX(-50%) translateY(0%);
    left: 50%;
    background: rgba(0,0,0,0.7);
    border-width: 1px;
    border-style: solid;
    border-color: black;
    text-align: center;
    color: #fff;
    padding: 4px 2px;
    font-size: 12px;
    min-width: 66px;
    border-radius: 5px;
    pointer-events: none;
}
