ion-refresher {
  left: 0;
  top: 0;
  display: none;
  position: absolute;
  width: 100%;
  height: 60px;
  pointer-events: none;
  z-index: -1;
}
[dir=rtl] ion-refresher, :host-context([dir=rtl]) ion-refresher {
  left: unset;
  right: unset;
  right: 0;
}

ion-refresher.refresher-active {
  display: block;
}

ion-refresher-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.refresher-pulling,
.refresher-refreshing {
  display: none;
  width: 100%;
}

.refresher-pulling-icon,
.refresher-refreshing-icon {
  transform-origin: center;
  transition: 200ms;
  font-size: 30px;
  text-align: center;
}
[dir=rtl] .refresher-pulling-icon, :host-context([dir=rtl]) .refresher-pulling-icon, [dir=rtl] .refresher-refreshing-icon, :host-context([dir=rtl]) .refresher-refreshing-icon {
  transform-origin: calc(100% - center);
}

.refresher-pulling-text,
.refresher-refreshing-text {
  font-size: 16px;
  text-align: center;
}

ion-refresher-content .arrow-container {
  display: none;
}

.refresher-pulling ion-refresher-content .refresher-pulling {
  display: block;
}

.refresher-ready ion-refresher-content .refresher-pulling {
  display: block;
}
.refresher-ready ion-refresher-content .refresher-pulling-icon {
  transform: rotate(180deg);
}

.refresher-refreshing ion-refresher-content .refresher-refreshing {
  display: block;
}

.refresher-cancelling ion-refresher-content .refresher-pulling {
  display: block;
}
.refresher-cancelling ion-refresher-content .refresher-pulling-icon {
  transform: scale(0);
}

.refresher-completing ion-refresher-content .refresher-refreshing {
  display: block;
}
.refresher-completing ion-refresher-content .refresher-refreshing-icon {
  transform: scale(0);
}

.refresher-native .refresher-pulling-text, .refresher-native .refresher-refreshing-text {
  display: none;
}

.refresher-md .refresher-pulling-icon,
.refresher-md .refresher-refreshing-icon {
  color: var(--ion-text-color, #000);
}

.refresher-md .refresher-pulling-text,
.refresher-md .refresher-refreshing-text {
  color: var(--ion-text-color, #000);
}

.refresher-md .refresher-refreshing .spinner-lines-md line,
.refresher-md .refresher-refreshing .spinner-lines-small-md line,
.refresher-md .refresher-refreshing .spinner-crescent circle {
  stroke: var(--ion-text-color, #000);
}

.refresher-md .refresher-refreshing .spinner-bubbles circle,
.refresher-md .refresher-refreshing .spinner-circles circle,
.refresher-md .refresher-refreshing .spinner-dots circle {
  fill: var(--ion-text-color, #000);
}

ion-refresher.refresher-native {
  display: block;
  z-index: 1;
}
ion-refresher.refresher-native ion-spinner {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  width: 24px;
  height: 24px;
  color: var(--ion-color-primary, #3880ff);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  ion-refresher.refresher-native ion-spinner {
    margin-left: unset;
    margin-right: unset;
    -webkit-margin-start: auto;
    margin-inline-start: auto;
    -webkit-margin-end: auto;
    margin-inline-end: auto;
  }
}
ion-refresher.refresher-native .spinner-arrow-container {
  display: inherit;
}
ion-refresher.refresher-native .arrow-container {
  display: block;
  position: absolute;
  width: 24px;
  height: 24px;
}
ion-refresher.refresher-native .arrow-container ion-icon {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  left: 0;
  right: 0;
  bottom: -4px;
  position: absolute;
  color: var(--ion-color-primary, #3880ff);
  font-size: 12px;
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  ion-refresher.refresher-native .arrow-container ion-icon {
    margin-left: unset;
    margin-right: unset;
    -webkit-margin-start: auto;
    margin-inline-start: auto;
    -webkit-margin-end: auto;
    margin-inline-end: auto;
  }
}
ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling, ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling {
  display: flex;
}
ion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing, ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing, ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing {
  display: flex;
}
ion-refresher.refresher-native .refresher-pulling-icon {
  transform: translateY(calc(-100% - 10px));
}
ion-refresher.refresher-native .refresher-pulling-icon,
ion-refresher.refresher-native .refresher-refreshing-icon {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  border-radius: 100%;
  padding-left: 8px;
  padding-right: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
  display: flex;
  border: 1px solid var(--ion-color-step-200, #ececec);
  background: var(--ion-color-step-250, #ffffff);
  box-shadow: 0px 1px 6px rgba(0, 0, 0, 0.1);
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  ion-refresher.refresher-native .refresher-pulling-icon,
ion-refresher.refresher-native .refresher-refreshing-icon {
    margin-left: unset;
    margin-right: unset;
    -webkit-margin-start: auto;
    margin-inline-start: auto;
    -webkit-margin-end: auto;
    margin-inline-end: auto;
  }
}
@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {
  ion-refresher.refresher-native .refresher-pulling-icon,
ion-refresher.refresher-native .refresher-refreshing-icon {
    padding-left: unset;
    padding-right: unset;
    -webkit-padding-start: 8px;
    padding-inline-start: 8px;
    -webkit-padding-end: 8px;
    padding-inline-end: 8px;
  }
}