@charset "UTF-8";
* {
  font-family: Gilroy;
}

:host {
  /* 全局/品牌色 */
  --primary-color: #fd5000;
  --warning-color: #FB990F;
  --danger-color: #F72626;
  --success-color: #67c23a;

  /* 文字色 */
  --text-main-color: #333;
  --text-secondary-color: #969799; /* 辅助色， 比如Cell的desc */
  --text-disable-color: #bbbbbb; /* 失效 */
  --text-white-color: #ffffff; /* 失效 */
  --text-placeholder-color: #cccccc; /* 表单placeholder */
  --text-link-color: var(----primary-color); /* 表单placeholder */

  /* 背景色 */
  --fill-base-color: #ffffff;  /* 组件默认背景色 */
  --fill-disable-color: #dddddd; /* 失效背景色 */
  --fill-mask-color: rgba(0, 0, 0, 0.7); /* 遮罩背景色 */

  /* 边框色 */
  --border-base-color: #d4d4d4; 
  --border-primary-color: #7FC3FF; 
  --border-warning-color: #FCCC87; 
  --border-danger-color: #FB9292; 
  --border-success-color: #83E0AF; 

  /* 透明度 */
  --opacity-disabled: 0.7; /* switch checkbox radio 等组件禁用的透明度 */

  /* 字体尺寸 */
  --font-xs: 12px;
  --font-sm: 14px;
  --font-base: 16px;
  --font-lg: 18px;
  --font-xl: 20px;
  --font-2xl: 24px;
  --font-3xl: 30px;
  --font-4xl: 36px;

  /* 字体粗细 */
  --font-300: 300;
  --font-400: 400;
  --font-500: 500;
  --font-600: 600;
  --font-bold: bold;

  /* 圆角 */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 12px;
  --radius-xl: 16px;

  /* 边框尺寸 */
  --border-width-sm: 0.5px;
  --border-width-md: 1px;
  --border-width-lg: 2px;

  /* 水平间距 */
  --row-spacing-xs: 2px;
  --row-spacing-sm: 4px;
  --row-spacing-md: 6px;
  --row-spacing-lg: 8px;
  --row-spacing-xl: 16px;

  /* 垂直间距 */
  --col-spacing-xs: 2px;
  --col-spacing-sm: 3px;
  --col-spacing-md: 5px;
  --col-spacing-lg: 8px;
  --col-spacing-xl: 16px;

  /* 表单相关 */
  --form-base-color: #242729;
  --form-disable-color: #c8c9cc;
  --high-light: #1677ff;
}

* {
  font-family: Gilroy;
}

:host {
  /* 全局/品牌色 */
  --primary-color: #fd5000;
  --warning-color: #FB990F;
  --danger-color: #F72626;
  --success-color: #67c23a;

  /* 文字色 */
  --text-main-color: #333;
  --text-secondary-color: #969799; /* 辅助色， 比如Cell的desc */
  --text-disable-color: #bbbbbb; /* 失效 */
  --text-white-color: #ffffff; /* 失效 */
  --text-placeholder-color: #cccccc; /* 表单placeholder */
  --text-link-color: var(----primary-color); /* 表单placeholder */

  /* 背景色 */
  --fill-base-color: #ffffff;  /* 组件默认背景色 */
  --fill-disable-color: #dddddd; /* 失效背景色 */
  --fill-mask-color: rgba(0, 0, 0, 0.7); /* 遮罩背景色 */

  /* 边框色 */
  --border-base-color: #d4d4d4; 
  --border-primary-color: #7FC3FF; 
  --border-warning-color: #FCCC87; 
  --border-danger-color: #FB9292; 
  --border-success-color: #83E0AF; 

  /* 透明度 */
  --opacity-disabled: 0.7; /* switch checkbox radio 等组件禁用的透明度 */

  /* 字体尺寸 */
  --font-xs: 12px;
  --font-sm: 14px;
  --font-base: 16px;
  --font-lg: 18px;
  --font-xl: 20px;
  --font-2xl: 24px;
  --font-3xl: 30px;
  --font-4xl: 36px;

  /* 字体粗细 */
  --font-300: 300;
  --font-400: 400;
  --font-500: 500;
  --font-600: 600;
  --font-bold: bold;

  /* 圆角 */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 12px;
  --radius-xl: 16px;

  /* 边框尺寸 */
  --border-width-sm: 0.5px;
  --border-width-md: 1px;
  --border-width-lg: 2px;

  /* 水平间距 */
  --row-spacing-xs: 2px;
  --row-spacing-sm: 4px;
  --row-spacing-md: 6px;
  --row-spacing-lg: 8px;
  --row-spacing-xl: 16px;

  /* 垂直间距 */
  --col-spacing-xs: 2px;
  --col-spacing-sm: 3px;
  --col-spacing-md: 5px;
  --col-spacing-lg: 8px;
  --col-spacing-xl: 16px;

  /* 表单相关 */
  --form-base-color: #242729;
  --form-disable-color: #c8c9cc;
  --high-light: #1677ff;
}

:host(.input-fill-solid) {
  --background: #f2f2f2;
  --border-color: #898989;
  --border-radius: 4px;
  --padding-start: 16px;
  --padding-end: 16px;
}

:host(.input-fill-solid) .input-wrapper {
  border-bottom: var(--border-width) var(--border-style) var(--border-color);
}

:host(.has-focus.input-fill-solid.jacker-valid),
:host(.input-fill-solid.jacker-touched.jacker-invalid) {
  --border-color: var(--highlight-color);
}

:host(.input-fill-solid) .input-bottom {
  border-top: none;
}

@media (any-hover: hover) {
  :host(.input-fill-solid:hover) {
    --background: #e6e6e6;
    --border-color: #404040;
  }
}
:host(.input-fill-solid.has-focus) {
  --background: #d9d9d9;
  --border-color: #404040;
}

:host(.input-fill-solid) .input-wrapper {
  border-radius: 4px 4px 0 0;
}

:host(.input-fill-solid) .input-label-placement-floating input {
  margin: 8px 0;
}

:host(.input-fill-solid.input-label-placement-stacked) .label-text-wrapper,
:host(.has-focus.input-fill-solid.input-label-placement-floating) .label-text-wrapper,
:host(.has-value.input-fill-solid.input-label-placement-floating) .label-text-wrapper {
  max-width: 133.3333333333%;
}

:host {
  fill: currentColor;
  --placeholder-color: initial;
  --placeholder-font-style: initial;
  --placeholder-font-weight: initial;
  --placeholder-opacity: 0.6;
  --border-radius: 0px;
  --padding-top: 0px;
  --padding-end: 0px;
  --padding-bottom: 0px;
  --padding-start: 0px;
  --background: transparent;
  --color: initial;
  --border-style: solid;
  --highlight-color-focused: #404040;
  --highlight-color-valid: #404040;
  --highlight-color-invalid: var(--danger-color);
  --highlight-color: var(--highlight-color-focused);
  --border-width: 1px;
  --border-color: var(--border-base-color);
  display: block;
  position: relative;
  width: 100%;
  padding: 0 !important;
  color: var(--color);
  z-index: 2;
  min-height: 45px;
}

:host-context(jackery-item:not(.item-label):not(.item-has-modern-input)) {
  --padding-start: 0;
}

:host-context(jackery-item)[slot=start],
:host-context(jackery-item)[slot=end] {
  width: auto;
}

:host(.input-fill-outline) {
  --border-color: #b3b3b3;
  --border-radius: 4px;
  --padding-start: 16px;
  --padding-end: 16px;
}

:host(.input-fill-outline.input-shape-round) {
  --border-radius: 28px;
  --padding-start: 32px;
  --padding-end: 32px;
}

:host(.input-fill-outline.input-shape-round) {
  --border-radius: 28px;
  --padding-start: 32px;
  --padding-end: 32px;
}

:host(.has-focus.input-fill-outline.jackery-valid),
:host(.input-fill-outline.jackery-invalid) {
  --border-color: var(--highlight-color);
}

@media (any-hover: hover) {
  :host(.input-fill-outline:hover) {
    --border-color: #404040;
  }
}
:host(.input-fill-outline.has-focus) {
  --border-width: 2px;
  --border-color: var(--highlight-color);
}

:host(.input-fill-solid.has-focus) .input-wrapper {
  border-bottom: 2px solid var(--highlight-color);
}

:host(.input-fill-outline.has-focus) .label-text-wrapper {
  background: #fff;
}

/* Native Input */
.native-input {
  padding: 0;
  display: inline-block;
  position: relative;
  flex: 1;
  width: 100%;
  max-width: 100%;
  max-height: 100%;
  border: 0 !important;
  outline: none;
  background: transparent;
  box-sizing: border-box;
  appearance: none;
  z-index: 1;
}
.native-input::placeholder {
  opacity: 0.8;
  color: var(--text-placeholder-color);
}
.native-input:-webkit-autofill {
  background-color: transparent;
}
.native-input:invalid {
  box-shadow: none;
}
.native-input::-ms-clear {
  display: none;
}

.input-clear-icon {
  margin: auto;
  padding: 0;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 0;
  outline: none;
  background-color: transparent;
  background-repeat: no-repeat;
  color: #666666;
  visibility: hidden;
  appearance: none;
  cursor: pointer;
}

.input-clear-icon .clear-icon {
  width: 20px;
  height: 20px;
}

:host(.in-item-color) .input-clear-icon {
  color: inherit;
}

.input-clear-icon:focus {
  opacity: 0.5;
}

:host(.has-value) .input-clear-icon {
  visibility: visible;
}

:host(.has-focus) {
  pointer-events: none;
}

:host(.has-focus) input,
:host(.has-focus) a,
:host(.has-focus) button {
  pointer-events: auto;
}

:host-context(.item-label-floating.item-has-placeholder:not(.item-has-value)) {
  opacity: 0;
}

:host-context(.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus) {
  transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 1;
}

.input-wrapper {
  padding: var(--padding-top) var(--padding-end) var(--padding-bottom) var(--padding-start);
  border-radius: var(--border-radius);
  display: flex;
  position: relative;
  flex-grow: 1;
  align-items: stretch;
  height: inherit;
  min-height: inherit;
  transition: background-color 15ms linear;
  background: var(--background);
  line-height: normal;
}

:host(.input-fill-solid) .input-wrapper {
  padding-bottom: 4px;
}

.native-wrapper {
  display: flex;
  position: relative;
  flex-grow: 1;
  width: 100%;
}

:host([error-text]) {
  position: relative;
  padding-bottom: 16px !important;
}

:host(.jackery-touched.jackery-invalid) {
  --highlight-color: var(--highlight-color-invalid);
}

:host(.jackery-invalid) {
  --highlight-color: var(--highlight-color-invalid);
}

/**
 * highlight: 只有focus状态下显示.
 */
:host(.jackery-valid) {
  --highlight-color: var(--highlight-color-valid);
}

.input-bottom {
  padding-top: 5px var(--padding-end) 0 var(--padding-start);
  display: flex;
  justify-content: space-between;
  border-top: var(--border-width) var(--border-style) var(--border-color);
  font-size: 12px;
}

:host(.has-focus.jackery-valid),
:host(.jackery-touched.jackery-invalid) {
  --border-color: var(--highlight-color);
}

/**
 * Error text 只在 .ion-invalid 上显示， 否则显示helper text
 */
.input-bottom .error-text {
  display: none;
  color: var(--highlight-color-invalid);
  position: absolute;
  bottom: 0;
  left: 0;
}

.input-bottom .helper-text {
  display: block;
  color: var(--text-secondary-color);
}

:host(.jackery-invalid) .input-bottom .error-text {
  display: block;
}

:host(.jackery-invalid) .input-bottom .helper-text {
  display: none;
}

.input-bottom .counter {
  margin-inline-start: auto;
  color: #949494;
  white-space: nowrap;
  padding-inline-start: 16px;
}

:host(.has-focus) input {
  caret-color: var(--border-primary-color);
}

.label-text-wrapper {
  display: flex;
  align-items: center;
  max-width: 200px;
  transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
}

.label-text,
::slotted([slot=label]) {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  font-size: var(--font-base);
  color: var(--text-secondary-color);
}

.label-text-wrapper-hidden,
.input-outline-notch-hidden {
  display: none;
}

.input-wrapper input {
  transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
  font-size: var(--font-base);
  color: var(--text-main-color);
}

:host(.input-label-placement-start) .input-wrapper {
  flex-direction: row;
}

:host(.input-label-placement-start) .label-text-wrapper {
  margin: 0 16px 0 0;
}

:host(.input-label-placement-end) .input-wrapper {
  flex-direction: row-reverse;
}

:host(.input-label-placement-end) .input-wrapper {
  flex-direction: row-reverse;
}

:host(.input-label-placement-end) .label-text-wrapper {
  margin: 0 0 0 16px;
}

:host(.input-label-placement-fixed) .label-text-wrapper {
  margin: 0 16px 0 0;
}

:host(.input-label-placement-fixed) .label-text {
  flex: 0 0 100px;
  width: 100px;
  min-width: 100px;
  max-width: 200px;
}

:host(.input-label-placement-stacked) .input-wrapper,
:host(.input-label-placement-floating) .input-wrapper {
  flex-direction: column;
  align-items: start;
}

:host(.input-label-placement-stacked) .label-text-wrapper,
:host(.input-label-placement-floating) .label-text-wrapper {
  transform-origin: left top;
  max-width: 100%;
  z-index: 2;
}

:host(.input-label-placement-stacked) input,
:host(.input-label-placement-floating) input {
  margin: 8px 0 0 0;
}

:host(.input-label-placement-floating) .label-text-wrapper {
  transform: translateY(100%) scale(1);
}

:host(.input-label-placement-floating) input {
  opacity: 0;
}

:host(.has-focus.input-label-placement-floating) input,
:host(.has-value.input-label-placement-floating) input {
  opacity: 1;
}

/**
 * floating or stacked：当input focus时候label高亮
 */
:host(.input-label-placement-floating.has-focus) .label-text-wrapper .label-text,
:host(.input-label-placement-stacked.has-focus) .label-text-wrapper .label-text {
  color: var(--highlight-color);
}

:host(.input-label-placement-stacked) .label-text-wrapper,
:host(.has-focus.input-label-placement-floating) .label-text-wrapper,
:host(.has-value.input-label-placement-floating) .label-text-wrapper {
  transform: translateY(50%) scale(0.75);
  max-width: 133.3333333333%;
}

:host(.input-fill-outline) .input-bottom {
  border-top: none;
}

:host(.input-fill-outline) .input-wrapper {
  border-bottom: none;
}

:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper,
:host(.input-fill-outline.input-label-placement-floating) .label-text-wrapper {
  transform-origin: left top;
  position: absolute;
  max-width: calc(100% - var(--padding-start) - var(--padding-end));
  transform: translateY(calc(50% + 3px)) scale(1);
}

:host(.input-fill-outline) .label-text-wrapper,
:host(.input-fill-outline) .label-text-wrapper {
  position: relative;
}

:host(.has-focus.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
:host(.has-value.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper {
  transform-origin: left top;
  margin: 0;
  max-width: calc(100% - var(--padding-start) - var(--padding-end));
  transform: translateY(-50%) scale(0.75);
  background: #fff;
}

:host(.input-fill-outline.input-label-placement-stacked) input,
:host(.input-fill-outline.input-label-placement-floating) input {
  margin: 6px 0;
}

:host(.input-fill-outline) .input-outline-container {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  position: absolute;
  width: 100%;
  height: 100%;
}

:host(.input-fill-outline) .input-outline-start,
:host(.input-fill-outline) .input-outline-end {
  pointer-events: none;
}

:host(.input-fill-outline) .input-outline-start,
:host(.input-fill-outline) .input-outline-notch,
:host(.input-fill-outline) .input-outline-end {
  border-top: var(--border-width) var(--border-style) var(--border-color);
  border-bottom: var(--border-width) var(--border-style) var(--border-color);
}

:host(.input-fill-outline) .input-outline-notch {
  max-width: calc(100% - var(--padding-start) - var(--padding-end));
}

:host(.input-fill-outline) .notch-spacer {
  padding: 0 4px 4px 0;
  font-size: 0.75em;
  opacity: 0;
  pointer-events: none;
  box-sizing: content-box;
}

:host(.input-fill-outline) .input-outline-start {
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: var(--border-radius);
  width: 12px;
  border: var(--border-width) var(--border-style) var(--border-color);
  border-right: none;
}

:host(.input-fill-outline) .input-outline-end {
  border: var(--border-width) var(--border-style) var(--border-color);
  border-left: none;
  border-top-left-radius: 0px;
  border-top-right-radius: var(--border-radius);
  border-bottom-right-radius: var(--border-radius);
  border-bottom-left-radius: 0px;
  flex-grow: 1;
}

:host(.has-focus.input-fill-outline.input-label-placement-floating) .input-outline-notch,
:host(.has-value.input-fill-outline.input-label-placement-floating) .input-outline-notch,
:host(.input-fill-outline.input-label-placement-stacked) .input-outline-notch {
  border-top: none;
}