/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* Checkboxes */

body[fds] .mat-checkbox-inner-container {
  height: 10px !important;
  width: 10px !important;
}

body[fds] .mat-checkbox-frame {
  height: 10px;
  width: 10px;
  border-color: $grey7;
}

body[fds] .mat-checkbox-ripple {
  left: -7px;
  top: -7px;
  right: -7px;
  bottom: -7px;
}

body[fds] .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,
body[fds] .mat-checkbox-checked.mat-accent .mat-checkbox-background {
  background-color: $blue-grey1;
}

body[fds] .mat-checkbox-inner-container:hover {
  background-color: $blue-grey1;
  border-radius: 2px;
}

body[fds] .mat-checkbox-background {
  height: 10px;
  width: 10px;
}

/* Covalent TdDataTableComponent 'selectable' property checkboxes */

body[fds] .mat-pseudo-checkbox {
  height: 10px !important;
  width: 10px !important;
  border: 1px solid $grey7;
}

body[fds] .mat-pseudo-checkbox:hover {
  background-color: $blue-grey1;
  border: 1px solid $blue-grey1;
}

body[fds] .mat-pseudo-checkbox-checked::after {
  content: '\f00c';
  font-size: 8px;
  font-family: fontawesome;
  margin-top: -9px;
  margin-left: -1px;
  border: none;
  transform: initial;
}

body[fds] .mat-pseudo-checkbox-checked, body[fds] .mat-pseudo-checkbox-indeterminate {
  background-color: $blue-grey1;
  border: 1px solid $blue-grey1;
  height: 10px;
  width: 10px;
}

body[fds] .mat-checkbox-disabled {
  cursor: not-allowed;
}
