.ng-hide {
  display: none;
}
.font-size(@size) {
  @remSize: @size/10;
  font-size: ~"@{size}px";
  font-size: ~"@{remSize}rem";
}

@white: #fff;
@dark-header-color: #58595b;
@header-hover-color: #f1f2f2;

.datepicker {
  display: block;
  position: absolute;
  padding: 0;
  border-radius: 0;
  border: 1px solid rgba(0, 0, 0, 0.2);
  background: transparent;
  -webkit-box-shadow: 2px 2px 5px rgba(120, 120, 120, 0.4);
  -moz-box-shadow: 2px 2px 5px rgba(120, 120, 120, 0.4);
  box-shadow: 2px 2px 5px rgba(120, 120, 120, 0.4);
  &.dropdown-menu {
    th, td {
      padding: 0;
    }
  }
  table {
    border-collapse: collapse;
    border: none;
    tr {
      th, td {
        -ms-filter: none;
        filter: none;
        -moz-border-radius: 0;
        -webkit-border-radius: 0;
        border-radius: 0;
        button {
          background: transparent none;
          -ms-filter: none;
          filter: none;
          min-width: 39px;
          width: 100%;
          height: 28px;
          padding: 4px 5px;
          .font-size(12);
          text-shadow: none;
          .ie9 & {
            min-width: 29px;
          }
          .ie8 & {
            min-width: 29px;
            width: 29px;
            border: none;
            margin: 0;
          }
          &:hover, &:active, &:focus {
            background: @header-hover-color none;
            -ms-filter: none;
            filter: none;
            color: @dark-header-color;
            span {
              color: @dark-header-color;
            }
          }
        }
        &:hover {
          -ms-filter: none;
          filter: none;
        }
      }
      th {
        width: 39px;
        height: 28px;
        background: @dark-header-color;
        color: @white;
        border: none;
        padding: 0;
        button {
          &:hover, &:active, &:focus {
            .calendar-prev {
              background-position: -13px -26px;
            }
            .calendar-next {
              background-position: -13px -39px;
            }
            .calendar-prev-year {
              background-position: -13px 0;
            }
            .calendar-next-year {
              background-position: -13px -13px;
            }
          }
        }
        small {
          .font-size(12);
          font-weight: normal;
          width: 39px;
          height: 28px;
          line-height: 28px;
          text-align: center;
          background-color: @header-hover-color;
          color: @dark-header-color;
          display: block;
        }
      }
      td {
        background-color: @white;
        padding: 0;
        button {
          color: @dark-header-color;
          height: 33px;

          &.month, &.year {
            height: 54px;
            line-height: 54px;
            width: 25%;
            float: left;
            margin-right: 0;
          }

        }
        span {
          height: 25px;
          line-height: 25px;
          width: 100%;
          margin: 0;
          -moz-border-radius: 0;
          -webkit-border-radius: 0;
          border-radius: 0;
          &:hover {
            background-color: inherit;
          }
        }
      }
    }
  }

  .btn-default {
    background-color: transparent;
    &:hover {
      background-color: @header-hover-color;
    }
  }
  .btn-default[disabled] {
    background: transparent none;
    -ms-filter: none;
    filter: none;
    color: @dark-header-color;
    pointer-events: auto;
    cursor: not-allowed;
    span {
      color: @dark-header-color;
      cursor: not-allowed;
    }
    &:hover {
      background: transparent none;
      -ms-filter: none;
      filter: none;
    }
    &.active {
      background: #f1f2f2;
      &:hover {
        background: #f1f2f2;
      }
      span {
        color: #58595b;
      }
    }
  }
  .btn-default.active {
    color: @white;
    span {
      color: @white;
    }
    &:hover {
      background: -webkit-gradient(linear, left 0, left 100%, from(#5f8fea), to(#71a3ff));
      background: -webkit-linear-gradient(top, #5f8fea, 0, #71a3ff, 100%);
      background: -moz-linear-gradient(top, #5f8fea 0, #71a3ff 100%);
      background: linear-gradient(to bottom, #5f8fea 0, #71a3ff 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5f8fea', endColorstr='#ff71a3ff', GradientType=0);
      color: inherit;
    }
  }
  .calendar-prev-year,
  .calendar-prev,
  .calendar-next,
  .calendar-next-year {
    background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAA0CAYAAACU7CiIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA25pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphMmNlZDBkOC02YTc2LTRjYjUtOWM4Yi0yNzhiNzhkOTVmNzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkZFOUFCNjc0NkNDMTFFM0JDMkZGQTdFMUU4ODYxQTIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkZFOUFCNjY0NkNDMTFFM0JDMkZGQTdFMUU4ODYxQTIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMDk5QjY1MTE4MjA2ODExOTRBQkIwREUwNjhBMjVENCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDphMmNlZDBkOC02YTc2LTRjYjUtOWM4Yi0yNzhiNzhkOTVmNzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz68ZR8mAAACs0lEQVR42qSY0XHbMAyGFZ4G4AjsBu4GygbuW9P2wZqg0QRxJ2g6gZW7XvsYdQJ7g3iDagRt4IA+wGVogAJU3uEF4s9PJsiflG9Op1PFtBWEhzgw+QAx5IK7T1/Omt+/fh6YfKgFyB7imIF8kh+Ywa40kL9onADxWd4L+RTis/wbjTNAVgsgF41LBns2QlgNByEQPQhMvXYFiElTSw+gNZXczJr4i/4Iz8YCyKyJoB6iFURcvoK9YtbQYugx8tbPwHrtS6TLu10Aa7WwfMOWYN0CWCeBUlhe2EfMTwXYmOX/acBU1xCraK5ZNEK++nj3eQ2xYvINl48Rf9FXwXoeJFcgDW7cKw1aE7sYvNXn6BkD8xzsv0yVNBqY5ZjgTHcO9kx5Jwh3TD5IZ9KcJsJqwZrWQl4acFbjCsY5Gg21qJFArSCSnKOoiS7hDIP1JQhazpWG8havaxdAWm55dwsgnQZCoAkHe2QKK0EmHIzV5JDYboSbaiVYzgYvj6NGgJv1rKmVkA0aZkDgVgF5o5kDNdi50f5sALAaCRSw88YAKGpqpg73eN54Qx1mNXVWh+9aQFIHlaZObp7qaUKISUMb9km7ZJNm0hAofjy9g/jG3XKEa9YBQq3JvW6LwF77pgBTaZxgL9FC3jPfsBJsQtsRNaWDL36P3kJ80NYCYEcIVuMU+iGr36gADln9RjLVgGd+ryksusAanXqyrDraeC/KvXHpj5u2sq66gJt3rzTSc3+A7dFMTauOXHuP0KAANnh/2+G0mlYdTdEL7i+vnNI4ndv85qpZdR7t/6+yfpf+af2cwds8TuXO0h/N1wSiy8fTkv7aO0PcKz+Su0Kj6Y8+WGlB9NE7KV+qx/vepLkz0NHRoedp2gEBR82dgea14/5lLNQhAgbNUT4ydZgb/KoOpfYqwACJC4HTiEIZqwAAAABJRU5ErkJggg==') no-repeat;
    width: 13px;
    height: 13px;
    &:before {
      content: '';
      display: none;
    }
  }
  .calendar-prev {
    background-position: 0 -26px;
  }
  .calendar-next {
    background-position: 0 -39px;
  }
  .calendar-prev-year {
    background-position: 0 0;
  }
  .calendar-next-year {
    background-position: 0 -13px;
  }
}