@import "ui-variables";
@import "ui-mixins";

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  font-family: @font-family;
  font-size: @font-size;
  line-height: @line-height-base;
  -webkit-font-smoothing: antialiased;
}

atom-workspace {
  display: block;
  height: 100%;
  overflow: hidden;
  position: relative;
  font-family: @font-family;

  // Important: This attribute is used in the theme-manager-specs to check that
  // themes load and override each other correctly. Do not remove!
  background-color: @background-primary;

  atom-workspace-axis.horizontal {
    display: -webkit-flex;
    height: 100%;
  }

  atom-workspace-axis.vertical {
    display: -webkit-flex;
    -webkit-flex: 1;
    -webkit-flex-flow: column;
  }
}

.sheet-container {
  height:100%;
}

.sheet {
  background-color: @background-primary;
}

.sheet-stack-enter {
  left:30px;
  opacity: 0;
  transition: all .125s ease-out;
}

.sheet-stack-enter.sheet-stack-enter-active {
  left:0;
  opacity: 1;
}

.sheet-stack-leave {
  left:0;
  opacity: 1;
  transition: all .125s ease-in;
}

.sheet-stack-leave.sheet-stack-leave-active {
  left:30px;
  opacity: 0;
}

.toolbar-menu-control {
  display:none;
}

.toolbar-window-controls {
  margin-top:14px;
  margin-left:@spacing-half;
  order: -1000;
  min-width: 72px;
  width: 72px;
  flex-grow: 0;
  flex-shrink: 0;

  &:hover {
    button {
      background-position: 0 -12px;
    }
  }

  button {
    -webkit-app-region: no-drag;
    display:inline-block;
    padding:0;
    width:12px;
    height:12px;
    margin:4px;
    float:left;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: 12px 48px;
    border: 0;
    &:active {
      background-position: 0 -24px;
    }
  }
  .close {
    background-image: url("images/application-frame/close@1x.png");
  }
  .minimize {
    background-image: url("images/application-frame/minimize@1x.png");
  }
  .maximize {
    background-image: url("images/application-frame/fullscreen@1x.png");
  }
  &.alt-true {
    .maximize {
      background-image: url("images/application-frame/maximize@1x.png");
    }
  }
}

@media (-webkit-min-device-pixel-ratio: 2) {
  .toolbar-window-controls {
    .close {
      background-image: url("images/application-frame/close@2x.png");
    }
    .minimize {
      background-image: url("images/application-frame/minimize@2x.png");
    }
    .maximize {
      background-image: url("images/application-frame/fullscreen@2x.png");
    }
    &.alt-true {
      .maximize {
        background-image: url("images/application-frame/maximize@2x.png");
      }
    }
  }
}

body.is-blurred {
  .toolbar-window-controls {
    button {
      background-position: 0 -36px;
    }
  }
  .sheet-toolbar-container {
    background-image: -webkit-linear-gradient(top, lighten(@toolbar-background-color, 14%), lighten(@toolbar-background-color, 14%));
    .btn.btn-toolbar {
      background: none;
      img { opacity:0.5; }
    }
    .item-container {
      .window-title {
        opacity: 0.5;
      }
    }
  }
}

.sheet-toolbar-container {
  background-image: -webkit-linear-gradient(top, lighten(@toolbar-background-color, 9%), @toolbar-background-color);
  box-shadow: inset 0 1px 0 lighten(@toolbar-background-color, 15%);
}

.layout-mode-popout {
  .sheet-toolbar {
    background: @background-primary;
    height: 35px;
    min-height: 35px;
    max-height: 35px;
  }
  .toolbar-window-controls {
    margin-top: 7px;
  }
}

.sheet-toolbar {
  position: relative;
  -webkit-app-region: drag;
  border-bottom: 1px solid darken(@toolbar-background-color, 9%);
  width:  100%;
  height: 50px;

  // prevent flexbox from ever, ever resizing toolbars, no matter
  // how much it thinks other content is being squished
  min-height: 50px;
  max-height: 50px;

  // cover up the vertical resizing separators, so the toolbar appears
  // to be one continuous bar.
  z-index: 10;

  .item-container > * {
    -webkit-app-region: no-drag;
  }
  .item-spacer {
    -webkit-app-region: drag;
  }

  .item-compose {
    order: 101;
  }

  .item-container {
    .window-title {
      position: absolute;
      text-align: center;
      left: 50%;
      transform: translateX(-50%);
      -webkit-app-region: drag;
      line-height: 36px;
      &:hover {
        cursor: default;
      }
    }
  }

  .item-back {
    order:-999;
    padding-top: 5px;
    padding-left: @spacing-three-quarters;
    img.content-mask { background-color: @text-color-heading; }
    flex-grow: 0;
    flex-shrink: 0;

    .item-back-title {
      cursor: default;
      color:@text-color-heading;
      margin:0;
      font-size: @font-size-h4;
      font-weight: @font-weight-normal;
      vertical-align: middle;
      display:inline-block;
    }
  }

  .btn-toolbar {
    margin-top: @spacing-three-quarters;
    margin-left: @spacing-three-quarters;
    margin-right: 0;
    flex-shrink: 0;
    height:28px;
  }

  .btn-toolbar:only-of-type {
    margin-right: @spacing-three-quarters;
  }
}

.opacity-125ms-enter {
  opacity:0;
  transition: opacity .125s ease-out;
}

.opacity-125ms-enter.opacity-125ms-enter-active {
  opacity:1;
}

.opacity-125ms-leave {
  opacity:1;
  transition: opacity .125s ease-in;
}

.opacity-125ms-leave.opacity-125ms-leave-active {
  opacity:0;
}

.flexbox-handle-horizontal {
  width: 6px;
  top: 0;
  bottom: 0;
  z-index: 2;
  position: absolute;
  cursor: col-resize;
  div {
    height:100%;
    border-right: 1px solid @border-color-divider;
  }

  &.flexbox-handle-right {
    right:-4px;
    padding-right:3px;
  }
  &.flexbox-handle-left {
    left:-3px;
    padding-right:2px;
  }
}

.flexbox-handle-vertical {
  width:100%;
  height:6px;
  left:0;
  right:0;
  z-index:2;
  position:absolute;
  cursor: row-resize;
  div {
    width:100%;
    // border-top: 1px solid @border-color-divider;
  }
  &.flexbox-handle-top {
    top:-3px;
    padding-right:3px;
  }
  &.flexbox-handle-bottom {
    bottom: 0;
    padding-right:2px;
  }
}

.registered-region-visible {
  border: 1px dashed rgba(255,0,0,0.5);
  margin: 2px;
  position:relative;
  min-height:1.5em;
  > .name {
    background-color: rgba(255,180,180,0.9);
    position: absolute;
    color: black;
    font-size: 13px;
    top:50%;
    left:50%;
    white-space: nowrap;
    z-index:100;
    -webkit-transform: translate(-50%, -50%);
    -webkit-user-select:text;
  }
  &:hover {
    border: 1px dashed rgba(255,0,0,1);
  }
}

.btn-feedback {
  position: fixed;
  bottom: 10px;
  right: 10px;
  background: linear-gradient(to bottom, @blue 0%,darken(@blue, 10%) 100%);
  width:50px;
  height:50px;
  border-radius:25px;
  display: inline-block;
  font-size: 30px;
  text-align: center;
  line-height:50px;
  color:rgba(255,255,255,0.9);
  border: 1px solid darken(@blue, 20%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  cursor: default;
}
.btn-feedback:hover {
  color:rgba(255,255,255,1);
  background: linear-gradient(to bottom, lighten(@blue,5%) 0%, darken(@blue, 5%) 100%);
}
.btn-feedback:active {
  background: linear-gradient(to bottom, darken(@blue,20%) 0%, darken(@blue, 10%) 100%);
}

// WINDOWS

body.platform-win32 {
  &.window-type-default {
    .toolbar-menu-control {
      display:inherit;
      order:10000;
      .btn { margin-left: 0; }
      .btn-toolbar {
        padding: 0 17px;
      }
      img.content-mask {
        position: relative;
        top: 30px;
        background-color: @text-color-heading;
      }
    }

  }

  .item-compose {
    order: -101;
  }

  .btn {
    border-radius: 0;
  }

  .flexbox-handle-vertical {
    cursor:ns-resize;
  }
  .flexbox-handle-horizontal {
    cursor:ew-resize;
  }

  .toolbar-window-controls {
    display:none;
  }

  .sheet-toolbar-container {
    background-image: none;
    background: @background-primary;
    .btn-toolbar {
      transition: background 300ms;
      margin: 0 0 0 1px;
      height: 49px;
      padding: 0 14px;
      border: 0;
      box-shadow: none;
      background: none;
      &:hover {
        background: #e5e5e5;
      }
    }
  }
  .btn-feedback {
    background: @blue;
    &:hover { background: lighten(@blue, 5%); }
    &:active { background: lighten(@blue, 20%); }
  }
}

body.platform-win32.is-blurred {
  .sheet-toolbar-container {
    background-image: none;
    background: @background-primary;
  }
}

// LINUX

body.platform-linux {
  .toolbar-window-controls {
    display:none;
  }
  .item-compose {
    order: -101;
  }

}
