// 1. Set up color classes
// ========================

// color variables
@import "./color-vars.styl";

// array of keywords and their associated color vars
$stages = (worst $worst) (worse $worse) (bad $bad) (neutral $neutral) (good $good) (better $better) (best $best)

// for each color stage, generate a named class w/ the appropriate color
for $stage in $stages
  .color-{$stage[0]}
    background-color: $stage[1]
    .action-yesno label,
    .task-action-btn
      background-color: darken($stage[1], 30%)
      &:hover, &:focus
        background-color: darken($stage[1], 40%)
    .task-options
      background-color: $stage[1]

// completed has to be outside the loop to override the color class
.completed
  background-color: $completed
  color: #999
  .task-checker label
    background-color: darken($completed, 30%)
  .task-action-btn
    background-color: darken($completed, 30%)

.reward
  background-color: white



// 2. Columns & Tasks
// ===================

// main columns
// ------------
.task-column
  padding: 1.5em
  background: #f5f5f5
  border: 1px solid #ccc
  font-family: 'Lato', sans-serif

  .task-column_title
    margin: 0 0 0.5em
    padding: 0


// add new task form
// -----------------
.addtask-form
  margin-bottom: 0.75em
  outline: 1px solid rgba(0,0,0,0.15)
  outline-offset: -1px
  background-color: white
  // box-shadow: 0 0 3px rgba(0,0,0,0.15)
  position: relative

// the input field
.addtask-field
  display: block
  width: 100%
  input
    font-family: 'Lato', sans-serif
    border: 0
    outline: 0
    border-radius: 0
    box-shadow: none
    background-color: white
    height: 3em
    padding: 0 0 0 0.5em
    width: 100%
    &:focus
      box-shadow: inset 0 0 3px darken($best, 20%),inset -1px 0 1px darken($best, 30%)

// the button
.addtask-btn
  position: absolute
  right: 0
  top: 0
  // important for overriding bootstrap, remove later
  width: 1.81818em !important
  height: 1.88em
  padding: 0
  font-size: 1.61em
  line-height: 1.7
  outline: 0
  border: 0
  border-radius: 0 //required to nuke BB-playbook user agent styles
  background-color: darken($best, 15%)
  &:hover, &:focus
    background-color: darken($best, 20%)
  &:active
    background-color: darken($best, 30%)


// an individual task entry
// ------------------------
.task
  list-style: none
  clear: both
  padding: 0
  min-height: 3em
  margin-bottom: 0.75em
  box-shadow: inset 0 0 1px rgba(0,0,0,0.5)
  position: relative
  &:hover
    cursor: move
  &:last-child
    margin-bottom: 0

// task content
.task-text
  display: block
  padding: 0.75em 0 0.75em 3.5em
  line-height: 1.4

.habit-wide .task-text
  padding-left: 7em

// when a task is being dragged
.task.ui-sortable-helper {
  box-shadow: 0 0 3px rgba(0,0,0,0.15), 0 0 5px rgba(0,0,0,0.1)
  transform: scale(1.05)
  outline: 1px solid rgba(0,0,0,0.2)
}

// primary task commands
// ----------------------
.task-controls
  display: inline-block
  float: left
  margin-left: -0.5em
  margin-right: 0.5em

.task-controls.task-primary
  position: absolute
  top: 0
  bottom: 0
  left: 0
  float: none
  margin: 0

// plus/minus commands
.task-action-btn
  display: inline-block
  width: 2.12765em
  height: 2.12765em
  padding: 0
  font-size: 1.41em
  line-height: 2.12765
  text-align: center
  color: #222
  vertical-align: top
  border-right: 1px solid rgba(0,0,0,0.25)
  &:last-child
    border: 0
  &:hover, &:focus
    color: #222
    text-decoration: none

// checkbox
.task-checker input[type=checkbox]
  margin: 0
  padding: 0
  visibility: hidden

.task-checker label
  display: inline-block
  width: 3em
  height: 100%
  margin: 0
  vertical-align: top
  cursor: pointer

// plus/minus checkbox
.action-plusminus
  label
    margin-right: 1.5em
  label:after
    font-size: 1.41em
    width: 2.12765em
    height: 2.12765em
    line-height: 2.12765
    text-align: center
    display: inline-block
    vertical-align top
    opacity: 0.3
    background-color: #ddd
    outline: 1px solid rgba(0,0,0,0.5)
    color: #222
  label[for$="plus"]:after
    content: '＋'
  label[for$="minus"]:after
    content: '−'

  &.select-toggle input[type=checkbox]:checked + label:after
    opacity: 1

// yes/no checkbox
.action-yesno
  position: relative
  // uncompleted icon
  label:after, label:before
    content: ''
    display: block
    height: 1.714285714em
    width: 1.714285714em
    font-size: 1.75em
    line-height: 1.714285714em
    text-align: center
    color: black
    opacity: 0.2

  label:after
    height 10px
    width 10px
    margin 15px auto
    border 1px solid #222
  label:before
    position: absolute
    left: 0
  // hint at completed icon
  label:hover:before,
  label:focus:before
    content: ''
  label:hover:after,
  label:focus:after
    content: '¬'
    border none
    margin 0
    font-size: 3.2em
    line-height: 0.9375em
    height: 0.9375em
    width: 1.15em
    text-align: center
    transform: rotate(135deg)
    opacity: 0.5 !important
  label:active:after
    opacity: 0.75 !important

  // completed icon
  input[type=checkbox]:checked + label:after
    content: '¬'
    font-size: 3.2em
    line-height: 0.9375em
    height: 0.9375em
    width: 1.15em
    text-align: center
    transform: rotate(135deg)
    opacity: 0.75
    border none
    margin 0


// secondary task commands
// -----------------------
.task-meta-controls
  float: right
  margin: 0.75em 0.5em 0 0.25em
  height: 1em
  opacity: 0.25
  a > i
    margin-left: 0.125em
  .task-notes
    margin-left: 0.125em

.task:hover .task-meta-controls
  opacity: 1

.popover
  line-height: 1.5

// task editing
// ------------
form
  margin-bottom: 0 // stupid bootstrap override

[class$="-options"]
  padding: 1em 1em 0
  color: #333
  z-index: 0
  position: relative
  //background-color:

  .option-group
    border-bottom: 1px solid rgba(0,0,0,0.1)
    padding: 0 0 1em
    margin-bottom: 1em

  .option-title
    font-size: 1em
    margin: 0 0 0.5em
    line-height: 1.5
    border: 0
    padding: 0
    color: #333
    font-style: italic
    &:not(.mega):after
      content: ':'
    &.mega
      cursor: pointer
      font-style: normal
      font-weight: bold
      text-decoration: underline

  .option-content
    height: 2.5em
    width: 100%
    margin: 0 0 1em
    padding: 0 0 0 0.5em
    outline: 0
    border: 1px solid rgba(0,0,0,0.2)
    box-shadow: none
    border-radius: 0
    font-family: 'Lato', sans-serif //bootstrap override

  textarea.option-content
    height: 5em
    padding-top: 0.25em
    resize: none
    margin-bottom: 0

.option-short
  .option-content
    width: 3em
    display: inline-block
  .input-suffix
    vertical-align: 20%
    padding-left: 0.25em

.option-medium
  .option-content
    width: 6em
    display: inline-block
  .input-suffix
    vertical-align: 20%
    padding-left: 0.25em

// button-group
.task-controls.tile-group
  display: block
  text-align: center
  margin: 0

.task-action-btn.tile
  border: 0
  font-size: 1.15em
  font-weight: 300
  outline: 1px solid rgba(0,0,0,0.2)
  outline-offset: -1px
  margin: 0 0 0 3px
  font-family: 'Lato', sans-serif
  text-align: inherit
  opacity: 0.5
  width: auto
  padding: 0 0.5em
  &.active
    opacity: 1

.tile.solid
  opacity: 1
.tile.spacious
  margin: 0.75em 0
  font-size: 1.25em
  opacity: 1
.tile.bright
  background-color: lighten($best, 20%)
  &:hover, &:focus
    background-color: lighten($best, 40%)
.tile.flush
  margin-left: 0
  border: 1px solid rgba(0,0,0,0.2)
  outline: 0
  line-height: 2em
  &:first-child
    border-right: 0


// todos ui
// --------

// nav tabs
.nav-tabs
  margin-top: 1.5em
.nav-tabs > li
  &.active > a
    color: #333
    &:hover
      margin-top: 1px
  > a
    border-radius: 0 !important
    margin-top: 1px
    color: #333
    &:hover
      border-top: 0
      margin-top: 2px
