/**
 * FilledInput 组件样式 - 100% 一比一复刻 MUI
 * 对应 MUI: packages/mui-material/src/FilledInput/FilledInput.js
 */

/* =============================================
   Root 基础样式
   ============================================= */
.MuiFilledInput-root {
  position: relative;
  background-color: rgba(0, 0, 0, 0.06);
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  transition: background-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;
}

/* =============================================
   Input 样式
   ============================================= */
.MuiFilledInput-input {
  padding: 25px 12px 8px;
  border: 0;
  background: transparent;
  outline: 0;
}

.MuiFilledInput-inputSizeSmall {
  padding-top: 21px;
  padding-bottom: 4px;
}

.MuiFilledInput-inputHiddenLabel {
  padding-top: 16px;
  padding-bottom: 17px;
}

.MuiFilledInput-inputHiddenLabel.MuiFilledInput-inputSizeSmall {
  padding-top: 8px;
  padding-bottom: 9px;
}

.MuiFilledInput-inputMultiline {
  padding: 0;
}

.MuiFilledInput-inputAdornedStart {
  padding-left: 0;
}

.MuiFilledInput-inputAdornedEnd {
  padding-right: 0;
}

/* =============================================
   装饰器
   ============================================= */
.MuiFilledInput-adornedStart {
  padding-left: 12px;
}

.MuiFilledInput-adornedEnd {
  padding-right: 12px;
}

/* =============================================
   多行
   ============================================= */
.MuiFilledInput-multiline {
  padding: 25px 12px 8px;
}

.MuiFilledInput-multiline.MuiFilledInput-sizeSmall {
  padding-top: 21px;
  padding-bottom: 4px;
}

/* =============================================
   下划线
   ============================================= */
.MuiFilledInput-underline::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.42);
  pointer-events: none;
  transition: border-bottom-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}

.MuiFilledInput-underline::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  border-bottom: 2px solid #1976d2;
  transform: scaleX(0);
  pointer-events: none;
  transition: transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;
}

.MuiFilledInput-underline.Mui-focused::after {
  transform: scaleX(1);
}

.MuiFilledInput-underline.Mui-error::after {
  border-bottom-color: #d32f2f;
  transform: scaleX(1);
}

.MuiFilledInput-underline.Mui-disabled::before {
  border-bottom-style: dotted;
}

/* 内部下划线元素（替代方案） */
.MuiFilledInput-underlineBorder {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background-color: rgba(0, 0, 0, 0.42);
  transition: background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
              height 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;
}

.MuiFilledInput-underlineBorder.Mui-focused {
  height: 2px;
  background-color: #1976d2;
}

.MuiFilledInput-underlineBorder.Mui-error {
  height: 2px;
  background-color: #d32f2f;
}

/* =============================================
   Hidden Label
   ============================================= */
.MuiFilledInput-hiddenLabel {
  padding-top: 0;
  padding-bottom: 0;
}

/* =============================================
   颜色变体
   ============================================= */
.MuiFilledInput-colorSecondary .MuiFilledInput-underlineBorder.Mui-focused {
  background-color: #9c27b0;
}

.MuiFilledInput-colorSecondary.MuiFilledInput-underline::after {
  border-bottom-color: #9c27b0;
}

/* =============================================
   状态
   ============================================= */
.MuiFilledInput-root.Mui-disabled {
  background-color: rgba(0, 0, 0, 0.12);
}
