.required::after {
  content: ' *';
  color: #fb5858;
}

select option:disabled {
  color: #adb5bd;
  background-color: #f8f9fa;
  text-decoration: line-through;
}

.btn-xs {
  padding: 2px 5px !important;
  font-size: 90% !important;
}

/* 移除 Bootstrap 表單驗證的背景圖示，避免與自訂圖示重疊 */
.was-validated .form-control:valid,
.was-validated .form-control:invalid,
.was-validated .form-select:valid,
.was-validated .form-select:invalid {
  background-image: none;
  padding-right: inherit;
}

/* Clear input wrap */
.clear-input-wrap {
  position: relative;
  display: block;
}

.clear-input-wrap .form-control,
.clear-input-wrap .form-select {
  width: 100%;
}

/* Clear button */
.clear-input-btn {
  position: absolute;
  right: 0.4rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.3rem;
  height: 1.3rem;
  padding: 0;
  border: none;
  background-color: #e9ecef;
  color: #adb5bd;
  cursor: pointer;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  z-index: 5;
  transition:
    color 0.15s,
    background-color 0.15s;
}

.clear-input-btn:hover {
  color: #2f3336;
  background-color: #e1e3e6;
}

/* 修正 app.css (Inspinia) 錯誤覆蓋 SweetAlert2 勾勾圖示定位 */
div:where(.swal2-icon).swal2-success [class^='swal2-success-line'][class$='tip'],
.swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {
  top: 2.875em;
  left: 0.8125em;
  width: 1.5625em;
}

.swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {
  top: 2.375em;
  right: 0.5em;
  inset-inline-end: 0.5em;
  width: 2.9375em;
}
