@use "sass:color";
@use "./wal";
@use "./colors";
@use "./functions" as funs;
@use "./mixins";

.control-center-container {
  @include mixins.reset-props;

  background: colors.$bg-translucent;
  border-radius: 28px;
  padding: 20px;

  & > * {
    margin: 9px 0;

    &:first-child {
      margin-top: 0;
    }

    &:last-child {
      margin-bottom: 0;
    }
  }

  & button:focus-visible {
    box-shadow: inset 0 0 0 1px colors.$fg-primary;
  }

  & .quickactions {
    margin-bottom: .8em;

    & .user-face {
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      min-height: 32px;
      min-width: 34px;
      margin-right: 6px;
      border-radius: 50%;
    }

    & .user-host {
      .user {
        font-size: 15px;
        font-weight: 600;
      }
      .host {
        color: colors.$fg-disabled;
        font-size: 10px;
        font-weight: 500;
      }
    }

    & > box:not(.button-row) image {
      -gtk-icon-size: 12px;
      color: colors.$fg-disabled;
      margin-right: 3px;
    }

    & .uptime {
      font-size: 10.1px;
      font-family: "Symbols Nerd Font Mono";
      color: colors.$fg-disabled;
    }

    & .button-row {
      & button {
        padding: 7px;
        margin: {
          top: 2px;
          bottom: 2px;
        };
      }
    }
  }

  & .sliders {
    icon {
      font-size: 16px;
    }

    button {
      padding: 4px;
      border-radius: 16px;

      icon {
        font-size: 14px;
      }

      &:hover {
        background: rgba(colors.$fg-primary, .2);
      }
    }

    & .page .content {
      & label.name {
        font-size: 14px;
        font-weight: 500;
      }

      & trough {
        margin-right: 10px;
      }

      & label.sub-header {
        margin-top: 6px;
      }
    }
  }

  & #page {
    transition: 120ms linear;
    background: colors.$bg-secondary;
    padding: 14px;
    border-radius: 24px;

    & .header {
      margin-bottom: 12px;

      & .top .title {
        font-size: 20px;
        font-weight: 600;
      }

      & .description {
        font-size: 12px;
        font-weight: 500;
        color: colors.$fg-disabled;
      }
    }

    & .sub-header {
      font-size: 14px;
      font-weight: 500;
      margin-bottom: 4px;
    }

    & .page-button, .extra-buttons {
      & button {
        padding: 6px;
        border-radius: 12px;

        &.selected {
          background: colors.$bg-tertiary;
        }

        &:hover {
          background: rgba(colors.$fg-primary, .1);
        }

        &:active {
          border-radius: 10px;
        }
      }

      & label.title {
        font-size: 14px;
      }

      & label.description {
        font-size: 10px;
        font-weight: 400;
        color: colors.$fg-disabled;
      }

      & icon {
        font-size: 16px;
      }
    }

    & .bottom-buttons button {
      & label.title {
        font-size: 14px;
        font-weight: 500;
      }
      & label.description {
        font-size: 10px;
        margin-top: -1px;
        font-weight: 400;
        color: colors.$fg-disabled;
      }
    }

    & .extra-buttons {
      margin-left: 2px;

      button {
        border-radius: 10px;

        &:active {
          border-radius: 8px;
        }
      }
    }
  }
}

.tiles-container {
  @include mixins.reset-props;

  & .tile {
    $radius: 18px;
    $padding: 4px;

    background: rgba(colors.$bg-primary, .5);
    border-radius: $radius;
    padding: $padding;
    min-height: 40px;

    & .icon {
      transition: 120ms ease-in;
      border-radius: calc($radius - $padding);
      padding: 8px 12px;
      margin-right: 6px;
      background: color.scale($color: colors.$bg-primary, $lightness: 10%);

      & image {
        -gtk-icon-size: 18px;
      }

      &:hover {
        background: color.scale($color: colors.$bg-primary, $lightness: 15%);
      }

      &:active {
        border-radius: calc($radius - $padding - 2px);
      }
    }

    & .content {
      & .title {
        font-weight: 600;
        font-size: 15.1px;
      }

      & .description {
        font-size: 12px;
        color: colors.$fg-disabled;
        font-weight: 400;
      }
    }

    & .arrow {
      -gtk-icon-size: 12px;
      color: rgba(colors.$fg-disabled, .4);
    }

    &:hover {
      background: color.scale($color: colors.$bg-primary, $lightness: 5%);
    }

    &.enabled .icon {
      background: colors.$bg-secondary;
      
      &:hover {
        background: colors.$bg-tertiary;
      }
    }

    &:active {
      border-radius: calc($radius - 2px);
    }
  }
}

.tile-pages #page {
  margin-top: 10px;
}

box.notif-history {
  background: colors.$bg-translucent;
  border-radius: 24px;
  padding: 18px;
  transition: 120ms linear;

  &.hide {
    opacity: 0;
  }

  & .notifications {
    & .notification {
      background: colors.$bg-translucent-primary;
      padding: 3px;
    }
  }

  & .button-row {
    margin-top: 12px;

    & button {
      @include mixins.button-reactive-secondary;
      padding: 7px;

      & label {
        font-size: 12px;
        font-weight: 600;
      }
    }
  }
}
