/**
 * 全站 Layer 弹框皮肤（与 layui-layer-fast 同时使用）
 * 前后台 meta 均引入；Fast.init 默认 skin: layui-layer-fast layui-layer-composite-dialog
 */

.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-title,
.layui-layer.layui-layer-composite-dialog .layui-layer-title {
  height: 44px !important;
  line-height: 44px !important;
}

.layui-layer.layui-layer-composite-dialog {
  border: none !important;
  border-radius: 12px !important;
  overflow: hidden;
  box-shadow: 0 18px 56px rgba(57, 73, 171, 0.18), 0 8px 24px rgba(0, 0, 0, 0.08) !important;
  background: transparent;
}

.layui-layer.layui-layer-composite-dialog.layui-layer-border {
  border: none !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-title {
  background: linear-gradient(135deg, #5c6bc0 0%, #3949ab 100%) !important;
  color: #fff !important;
  border-bottom: none !important;
  height: 44px !important;
  line-height: 44px !important;
  font-weight: 600;
  font-size: 15px;
  padding: 0 44px 0 16px !important;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  overflow: hidden;
}

/* 标题栏右侧：仅保留关闭按钮，与标题垂直居中（覆盖 layer 默认 top:17px 及 backend.min.css） */
.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin {
  top: 0 !important;
  right: 8px !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: 0;
}

.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-min,
.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-max,
.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-maxmin,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-min,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-max,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-maxmin {
  display: none !important;
}

.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close1,
.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close2,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close1,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close2 {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  background: none !important;
  background-image: none !important;
  position: relative !important;
  vertical-align: middle !important;
}

.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close1:after,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close1:after {
  content: "×" !important;
  font-family: Arial, "Microsoft YaHei", sans-serif !important;
  position: static !important;
  display: block !important;
  line-height: 1 !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.92) !important;
  margin: 0 !important;
  transform: none !important;
  background: none !important;
}

.layui-layer.layui-layer-fast.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close1:hover:after,
.layui-layer.layui-layer-composite-dialog .layui-layer-setwin .layui-layer-close1:hover:after {
  color: #fff !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-content {
  border: none !important;
  background: #f5f6fa;
}

.layui-layer.layui-layer-composite-dialog iframe {
  border: none !important;
  background: #f5f6fa;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-btn,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer {
  border-top: 1px solid #e8eaf0 !important;
  background: #fff !important;
  box-shadow: none !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-btn a {
  background-color: #5c6bc0 !important;
  border: none !important;
  border-color: transparent !important;
  border-radius: 8px !important;
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: 0 4px 14px rgba(57, 73, 171, 0.28) !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-btn .layui-layer-btn0 {
  background-color: #43a047 !important;
  border: none !important;
  border-color: transparent !important;
  box-shadow: 0 4px 14px rgba(67, 160, 71, 0.3) !important;
}

/* 弹框打开时 Layer 会自动 focus 首个按钮，Bootstrap a:focus 会出现黑框；点击别处失焦后消失 */
.layui-layer.layui-layer-composite-dialog .layui-layer-btn a:focus,
.layui-layer.layui-layer-composite-dialog .layui-layer-btn a:focus-visible,
.layui-layer.layui-layer-composite-dialog .layui-layer-btn a:active,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn:focus,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn:focus-visible,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn:active,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer button:focus,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer button:focus-visible,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer button:active,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer input[type="submit"]:focus,
.layui-layer.layui-layer-composite-dialog .layui-layer-footer input[type="button"]:focus {
  outline: none !important;
  outline-offset: 0 !important;
  -webkit-focus-ring-color: transparent !important;
  border: none !important;
  border-color: transparent !important;
}

body.is-dialog {
  background: #f5f6fa !important;
}

body.is-dialog #main {
  background: #f5f6fa !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn {
  border-radius: 8px !important;
  padding: 8px 24px !important;
  font-weight: 600 !important;
  min-width: 88px;
  border: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-offset: 0 !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn-success {
  background: linear-gradient(135deg, #66bb6a 0%, #43a047 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(67, 160, 71, 0.3) !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn-danger {
  background: linear-gradient(135deg, #ef5350 0%, #e53935 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(229, 57, 53, 0.28) !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn-default {
  background: #fff !important;
  border: none !important;
  border-color: transparent !important;
  color: #3949ab !important;
  box-shadow: 0 2px 8px rgba(57, 73, 171, 0.12) !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn-primary {
  background: linear-gradient(135deg, #5c6bc0 0%, #3949ab 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(57, 73, 171, 0.32) !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-footer .btn:hover {
  transform: translateY(-1px);
}

/* Layer 键盘确认透明按钮：打开弹框时自动 focus，backend.css 会显示 #444c69 边框 */
.layui-layer.layui-layer-composite-dialog .layui-layer-btn .layui-layer-confirm,
.layui-layer.layui-layer-composite-dialog .layui-layer-confirm {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.layui-layer.layui-layer-composite-dialog .layui-layer-btn .layui-layer-confirm:focus,
.layui-layer.layui-layer-composite-dialog .layui-layer-btn .layui-layer-confirm:focus-visible,
.layui-layer.layui-layer-composite-dialog .layui-layer-confirm:focus,
.layui-layer.layui-layer-composite-dialog .layui-layer-confirm:focus-visible {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

/* ============================================================
 * 全站提示弹窗文字颜色（前后台 Layer.msg / Layer.alert / Toastr）
 * 成功：#409EFF  失败/报错：#FF0000
 * ============================================================ */

/*
 * Layer.msg 无 icon 时会叠加 layui-layer-hui（层节点 color:#fff + 黑底），
 * composite-dialog 又把 content 改成浅色底，导致白字几乎不可见。
 */
.layui-layer.layui-layer-hui {
  background-color: transparent !important;
  filter: none !important;
  color: #FF0000 !important;
  box-shadow: none !important;
}

.layui-layer.layui-layer-hui .layui-layer-content {
  background: #fff !important;
  color: #FF0000 !important;
  font-weight: 600;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
}

.layui-layer.layui-layer-hui .layui-layer-content:has(.layui-layer-ico1) {
  color: #409EFF !important;
}

.layui-layer.layui-layer-hui .layui-layer-content:has(.layui-layer-ico2),
.layui-layer.layui-layer-hui .layui-layer-content:has(.layui-layer-ico0),
.layui-layer.layui-layer-hui .layui-layer-content:has(.layui-layer-ico5) {
  color: #FF0000 !important;
}

/* 表单校验气泡（nice-validator） */
.n-error,
.n-error .n-msg {
  color: #FF0000 !important;
}

.n-ok,
.n-ok .n-msg {
  color: #409EFF !important;
}

.n-error .msg-wrap,
.msg-box .n-error .msg-wrap {
  background: #fff !important;
  border: 1px solid rgba(255, 0, 0, 0.35) !important;
  color: #FF0000 !important;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  box-shadow: 0 4px 12px rgba(255, 0, 0, 0.1) !important;
}

.n-ok .msg-wrap,
.msg-box .n-ok .msg-wrap {
  background: #fff !important;
  border: 1px solid rgba(64, 158, 255, 0.45) !important;
  color: #409EFF !important;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  box-shadow: 0 4px 12px rgba(64, 158, 255, 0.12) !important;
}

/* Layer.msg / Layer.alert：成功 icon=1 */
.layui-layer-msg .layui-layer-content:has(.layui-layer-ico1),
.layui-layer-dialog .layui-layer-content:has(.layui-layer-ico1) {
  color: #409EFF !important;
  font-weight: 600;
}

/* Layer.msg / Layer.alert：失败 icon=2、警告 icon=0、哭脸 icon=5 */
.layui-layer-msg .layui-layer-content:has(.layui-layer-ico2),
.layui-layer-dialog .layui-layer-content:has(.layui-layer-ico2),
.layui-layer-msg .layui-layer-content:has(.layui-layer-ico0),
.layui-layer-dialog .layui-layer-content:has(.layui-layer-ico0),
.layui-layer-msg .layui-layer-content:has(.layui-layer-ico5),
.layui-layer-dialog .layui-layer-content:has(.layui-layer-ico5) {
  color: #FF0000 !important;
  font-weight: 600;
}

/* Layer.msg 浅色背景上保证正文可读 */
.layui-layer.layui-layer-composite-dialog.layui-layer-msg .layui-layer-content,
.layui-layer.layui-layer-fast.layui-layer-msg .layui-layer-content,
.layui-layer.layui-layer-msg .layui-layer-content {
  background: #fff !important;
  color: #333 !important;
}

/* Toastr 成功/失败：浅色底 + 指定文字色 */
#toast-container > .toast-success,
.toast-success {
  background-color: #fff !important;
  color: #409EFF !important;
  border: 1px solid rgba(64, 158, 255, 0.45) !important;
  box-shadow: 0 6px 20px rgba(64, 158, 255, 0.18) !important;
}

#toast-container > .toast-error,
.toast-error {
  background-color: #fff !important;
  color: #FF0000 !important;
  border: 1px solid rgba(255, 0, 0, 0.35) !important;
  box-shadow: 0 6px 20px rgba(255, 0, 0, 0.12) !important;
}

#toast-container > .toast-success .toast-title,
#toast-container > .toast-success .toast-message,
.toast-success .toast-title,
.toast-success .toast-message {
  color: #409EFF !important;
}

#toast-container > .toast-error .toast-title,
#toast-container > .toast-error .toast-message,
.toast-error .toast-title,
.toast-error .toast-message {
  color: #FF0000 !important;
}

#toast-container > .toast-success .toast-close-button,
.toast-success .toast-close-button {
  color: #409EFF !important;
  text-shadow: none !important;
  opacity: 0.75;
}

#toast-container > .toast-error .toast-close-button,
.toast-error .toast-close-button {
  color: #FF0000 !important;
  text-shadow: none !important;
  opacity: 0.75;
}

#toast-container > .toast-success .toast-message a,
#toast-container > .toast-success .toast-message label,
.toast-success .toast-message a,
.toast-success .toast-message label {
  color: #409EFF !important;
}

#toast-container > .toast-error .toast-message a,
#toast-container > .toast-error .toast-message label,
.toast-error .toast-message a,
.toast-error .toast-message label {
  color: #FF0000 !important;
}
