@mixin calendar() {
  calendar {
    border-width: 1px;
    border-radius: $roundness;
    border-style: solid;
    border-color: $borders;
    color: $fg_color;

    &.header {
      border: none;
      border-bottom: 1px solid gtkshade($borders, 1.1);
      color: $text_color;
    }

    &.button {
      color: gtkalpha($fg_color, 0.45);

      &:hover { color: $fg_color; }
      &:backdrop { color: gtkalpha($unfocused_fg_color, 0.45); }
      &:disabled { color: gtkalpha($disabled_fg_color, 0.45); }
    }

    &:selected {
      border-radius: $button_radius + 1px;
      color: $selected_fg_color;
      background-color: $selected_bg_color;

      &:backdrop {
        color: $unfocused_selected_fg_color;
        background-color: $unfocused_selected_bg_color;
      }
    }

    &:indeterminate { color: gtkalpha(currentColor, 0.1); }

    &.highlight {
      color: $disabled_fg_color;

      &:backdrop { color: $unfocused_disabled_fg_color; }
    }

    &:backdrop {
      color: $unfocused_text_color;
      border-color: $unfocused_borders;
    }
  }
}
