@import "../../style/themes/default";
@import "../../style/mixins/index";

@layout-prefix-cls: ~"@{dt-prefix}-layout";

.@{layout-prefix-cls} {
  display: flex;
  flex-direction: column;
  flex: auto;
  background: @layout-body-background;

  &,
  * {
    box-sizing: border-box;
  }

  &&-has-sider {
    flex-direction: row;
    > .@{layout-prefix-cls},
    > .@{layout-prefix-cls}-content {
      overflow-x: hidden;
    }
  }

  &-header,
  &-footer {
    flex: 0 0 auto;
  }

  &-header {
    background: @layout-header-background;
    padding: @layout-header-padding;
    height: @layout-header-height;
    line-height: @layout-header-height;
  }

  &-footer {
    background: @layout-footer-background;
    padding: @layout-footer-padding;
    color: @text-color;
    font-size: @font-size-base;
  }

  &-content {
    flex: auto;
  }

  &-sider {
    transition: all .2s;
    position: relative;
    background: @layout-sider-background;

    /* fix firefox can't set width smaller than content on flex item */
    min-width: 0;

    &-children {
      height: 100%;
      // Hack for fixing margin collaspe bug
      // https://github.com/dt-design/dt-design/issues/7967
      // solution from https://stackoverflow.com/a/33132624/3040605
      padding-top: 0.1px;
      margin-top: -0.1px;
    }

    &-has-trigger {
      padding-bottom: @layout-trigger-height;
    }

    &-right {
      order: 1;
    }

    &-trigger {
      position: fixed;
      text-align: center;
      bottom: 0;
      cursor: pointer;
      height: @layout-trigger-height;
      line-height: @layout-trigger-height;
      color: @layout-trigger-color;
      background: @layout-trigger-background;
      z-index: 1;
      transition: all .2s;
    }

    &-zero-width {
      & > * {
        overflow: hidden;
      }

      &-trigger {
        position: absolute;
        top: @layout-header-height;
        right: -@layout-zero-trigger-width;
        text-align: center;
        width: @layout-zero-trigger-width;
        height: @layout-zero-trigger-height;
        line-height: @layout-zero-trigger-height;
        background: @layout-sider-background;
        color: #fff;
        font-size: @layout-zero-trigger-width / 2;
        border-radius: 0 @border-radius-base @border-radius-base 0;
        cursor: pointer;
        transition: background .3s ease;

        &:hover {
          background: tint(@layout-sider-background, 10%);
        }
      }
    }
  }
  &.no-flex {
    .@{layout-prefix-cls}-has-sider {
      overflow: hidden;
      & > .@{layout-prefix-cls}-sider,  & > .@{layout-prefix-cls}-content {
        float: left;
        padding-bottom: 10000px;
        margin-bottom: -10000px;
      }
      & > .@{layout-prefix-cls}-content {
        width: calc(~"100% - 200px");
      }
    }
    &.@{layout-prefix-cls}-has-sider {
      overflow: hidden;
      & > .@{layout-prefix-cls}-sider,  & > .@{layout-prefix-cls} {
        float: left;
        padding-bottom: 10000px;
        margin-bottom: -10000px;
      }
      & > .@{layout-prefix-cls} {
        width: calc(~"100% - 200px");
      }
      & > .@{layout-prefix-cls}-sider-collapsed + .@{layout-prefix-cls} {
        width: calc(~"100% - 60px");
      }
    }
  }
}
