/* 统一网站弹窗：替代浏览器原生 alert 的视觉层 */
.site-dialog-layer {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(25, 39, 64, .46);
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s ease;
}

.site-dialog-layer.is-open { opacity: 1; visibility: visible; }

.site-dialog {
  width: 400px;
  max-width: calc(100vw - 32px);
  overflow: hidden;
  border: 1px solid #e5ebf3;
  border-radius: 16px;
  background: #fff;
  color: #243653;
  box-shadow: 0 20px 55px rgba(35, 57, 93, .24);
  transform: translateY(8px) scale(.98);
  transition: transform .18s ease;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

.site-dialog-layer.is-open .site-dialog { transform: translateY(0) scale(1); }

.site-dialog__head { position: relative; padding: 24px 48px 8px; text-align: center; }
.site-dialog__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: #eaf2ff;
  color: #2878e8;
  font-size: 28px;
  font-weight: 700;
}
.site-dialog__title { margin: 0; color: #243653; font-size: 19px; line-height: 1.45; font-weight: 700; }
.site-dialog__heading-copy { min-width: 0; }
.site-dialog__kicker { margin: 0 0 6px; color: #4b6fe8; font-size: 10px; font-weight: 800; letter-spacing: 1.8px; line-height: 1.4; }
.site-dialog__close {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: #f1f4f8;
  color: #7b8aa3;
  cursor: pointer;
  font-size: 22px;
  line-height: 28px;
}
.site-dialog__close:hover { background: #e6edf6; color: #243653; }
.site-dialog__body { padding: 4px 28px 22px; color: #5f718c; font-size: 15px; line-height: 1.75; text-align: center; white-space: pre-line; word-break: break-word; }
.site-dialog__message { color: inherit; font-size: inherit; line-height: inherit; }
.site-dialog__label { display: block; margin: 18px 0 7px; color: #344766; font-size: 12px; font-weight: 700; text-align: left; }
.site-dialog__input-wrap { display: flex; align-items: center; height: 46px; border: 1px solid #d8e1ed; border-radius: 12px; background: #f9fbfe; box-shadow: inset 0 1px 2px rgba(31,48,82,.03); transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.site-dialog__input-wrap:focus-within { border-color: #6b88eb; background: #fff; box-shadow: 0 0 0 4px rgba(75,111,232,.11); }
.site-dialog__input-icon { flex: 0 0 40px; color: #9aa8bc; font-size: 11px; text-align: center; }
.site-dialog__input { display: block; width: auto; min-width: 0; height: 44px; flex: 1; margin: 0; padding: 0; border: 0; outline: 0; background: transparent; color: #243653; font-size: 14px; box-sizing: border-box; }
.site-dialog__input:focus { border: 0; box-shadow: none; }
.site-dialog__password-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; height: 44px; padding: 0; border: 0; outline: 0; background: transparent; color: #8594aa; cursor: pointer; }
.site-dialog__password-toggle:hover { color: #4b6fe8; }
.site-dialog__foot { display: flex; justify-content: center; gap: 10px; padding: 0 24px 24px; }
.site-dialog__button { min-width: 112px; height: 40px; padding: 0 22px; border: 1px solid transparent; border-radius: 10px; cursor: pointer; font-size: 14px; font-weight: 700; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.site-dialog__button:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(35, 57, 93, .14); }
.site-dialog__button--cancel { border-color: #d8e1ed; background: #f5f7fa; color: #536681; }
.site-dialog__button--primary { background: #2878e8; color: #fff; }
.site-dialog__button--danger { background: #e45862; color: #fff; }
.site-dialog--success .site-dialog__icon { background: #e7f7ef; color: #19a974; }
.site-dialog--success .site-dialog__button--primary { background: #19a974; }
.site-dialog--error .site-dialog__icon { background: #fdebed; color: #e45862; }
.site-dialog--warning .site-dialog__icon { background: #fff4df; color: #ed9b28; }
.site-dialog--prompt .site-dialog__icon { background: #eaf2ff; color: #2878e8; }
.site-dialog-layer--danger .site-dialog__icon,
.site-dialog-layer--confirm.site-dialog-layer--danger .site-dialog__icon { background: linear-gradient(145deg, #fff0f1, #ffe1e4); color: #e04455; box-shadow: 0 10px 24px rgba(224,68,85,.16); }
.site-dialog-layer--danger .site-dialog__kicker { color: #e04455; }
.site-dialog-layer--error .site-dialog__kicker { color: #d83d4f; }
.site-dialog-layer--success .site-dialog__kicker { color: #fff; opacity: .82; }
@media (max-width: 480px) {
  .site-dialog__head { padding-top: 20px; }
  .site-dialog__body { padding-left: 20px; padding-right: 20px; }
  .site-dialog__foot { padding-left: 16px; padding-right: 16px; }
  .site-dialog__button { flex: 1; min-width: 0; }
}

/* 全站操作结果弹窗：承载 showmsg() 的保存、删除、上传和错误提示。 */
.site-result-layer {
  position: fixed;
  inset: 0;
  z-index: 2147482900;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  box-sizing: border-box;
  padding: 28px 24px 24px;
  overflow: auto;
  background: rgba(22, 52, 91, .08);
  pointer-events: none;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

.site-result-dialog {
  position: relative;
  width: min(640px, 100%);
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 18px;
  background: linear-gradient(135deg, #1769d1 0%, #2588ec 56%, #3aa6f5 100%);
  color: #fff;
  box-shadow: 0 18px 42px rgba(24, 96, 183, .28), 0 5px 14px rgba(24, 96, 183, .13);
  animation: site-result-enter .24s ease-out both;
  pointer-events: auto;
}

.site-result-accent {
  height: 3px;
  background: rgba(255, 255, 255, .72);
}

.site-result-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px 26px 0;
  text-align: left;
}

.site-result-icon {
  display: inline-flex;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 2px solid rgba(255, 255, 255, .8);
  border-radius: 50%;
  background: rgba(255, 255, 255, .14);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .08);
}

.site-result-icon-mark {
  font-size: 25px;
  font-weight: 800;
  line-height: 1;
}

.site-result-heading h2 {
  margin: 0;
  color: #fff;
  font-size: 22px;
  line-height: 1.35;
  font-weight: 750;
  overflow-wrap: anywhere;
}

.site-result-message {
  margin: 14px 26px 0;
  padding: 13px 16px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 11px;
  background: rgba(6, 62, 137, .22);
  color: rgba(255, 255, 255, .92);
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.site-result-message-content {
  color: inherit;
  font-size: inherit;
  line-height: 1.75;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.site-result-footer {
  display: grid;
  grid-template-columns: 3fr 7fr;
  gap: 12px;
  padding: 18px 26px 22px;
}

.site-result-footer--single {
  grid-template-columns: minmax(160px, 220px);
  justify-content: center;
}

.site-result-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  min-width: 0;
  box-sizing: border-box;
  padding: 12px 16px;
  border: 1px solid transparent;
  border-radius: 10px;
  text-decoration: none !important;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: transform .16s ease, box-shadow .16s ease;
}

.site-result-action:hover {
  transform: translateY(-1px);
}

.site-result-action--primary {
  background: #fff;
  color: #1769d1 !important;
  box-shadow: 0 7px 16px rgba(5, 64, 143, .18);
}

.site-result-action--primary:hover { color: #0d55b4 !important; box-shadow: 0 10px 20px rgba(5, 64, 143, .24); }

.site-result-action--secondary {
  border-color: rgba(255, 255, 255, .55);
  background: rgba(255, 255, 255, .12);
  color: #fff !important;
  box-shadow: none;
}

.site-result-action--secondary:hover { border-color: #fff; background: rgba(255, 255, 255, .2); color: #fff !important; }

.site-result-layer--info .site-result-dialog { background: linear-gradient(135deg, #1769d1 0%, #2588ec 56%, #3aa6f5 100%); }
.site-result-layer--warning .site-result-dialog { background: linear-gradient(135deg, #cc7a09 0%, #e99a1e 56%, #f3b749 100%); }
.site-result-layer--danger .site-result-dialog { background: linear-gradient(135deg, #c63d51 0%, #df5969 56%, #ed7d88 100%); }

@keyframes site-result-enter {
  from { opacity: 0; transform: translateY(14px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 520px) {
  .site-result-layer { padding: 12px; }
  .site-result-dialog { border-radius: 15px; }
  .site-result-heading { padding: 17px 16px 0; }
  .site-result-heading h2 { font-size: 18px; }
  .site-result-message { margin: 12px 16px 0; padding: 12px; font-size: 13px; }
  .site-result-message-content { font-size: 14px; }
  .site-result-footer { gap: 9px; padding: 14px 16px 16px; }
  .site-result-action { min-height: 38px; padding: 8px 10px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-result-dialog { animation: none; }
  .site-result-action { transition: none; }
}

/* Unified backend feedback: the success state follows the approved blue top toast. */
.site-dialog-layer--success {
  align-items: flex-start;
  padding-top: 22px;
  background: rgba(22, 52, 91, .06);
  pointer-events: none;
}

.site-dialog-layer--success .site-dialog {
  width: min(540px, calc(100vw - 32px));
  border: 0;
  border-radius: 20px;
  background: linear-gradient(135deg, #1769d1 0%, #2588ec 58%, #3aa6f5 100%);
  color: #fff;
  box-shadow: 0 18px 38px rgba(24, 96, 183, .28);
  pointer-events: auto;
  transform: translateY(-10px);
}

.site-dialog-layer--success.is-open .site-dialog { transform: translateY(0); }
.site-dialog-layer--success .site-dialog__head { display: grid; grid-template-columns: 50px 1fr; align-items: center; gap: 14px; padding: 18px 24px 0; text-align: left; }
.site-dialog-layer--success .site-dialog__icon { width: 46px; height: 46px; margin: 0; border: 2px solid rgba(255,255,255,.9); background: rgba(255,255,255,.12); color: #fff; font-size: 25px; }
.site-dialog-layer--success .site-dialog__title { color: #fff; font-size: 21px; }
.site-dialog-layer--success .site-dialog__body { padding: 3px 24px 18px 88px; color: rgba(255,255,255,.9); font-size: 14px; line-height: 1.45; text-align: left; }
.site-dialog-layer--success .site-dialog__foot { display: none; }
.site-dialog-layer--success .site-dialog__close { top: 13px; right: 15px; background: rgba(255,255,255,.14); color: #fff; }

@media (max-width: 480px) {
  .site-dialog-layer--success { padding-top: 12px; }
  .site-dialog-layer--success .site-dialog__head { padding: 16px 19px 0; grid-template-columns: 42px 1fr; gap: 11px; }
  .site-dialog-layer--success .site-dialog__icon { width: 40px; height: 40px; font-size: 22px; }
  .site-dialog-layer--success .site-dialog__body { padding: 2px 19px 16px 72px; font-size: 13px; }
}

/*
 * 全站 Layer 基础弹窗：JS 只增加 site-unified-layer 语义类，
 * 不替换 Layer 的调用和回调，确保历史业务行为不变。
 */
/*
 * Layer 在无标题弹窗中会把 closeBtn: 1 自动渲染成 close2，默认位置是
 * right:-28px/top:-28px。弹窗启用圆角裁切后就只剩一角，因此统一把两种
 * 关闭按钮收回卡片内部，并提供稳定的 32px 点击区域。
 */
body .layui-layer:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) > .layui-layer-setwin {
  z-index: 6;
  line-height: 1;
}
body .layui-layer:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) > .layui-layer-setwin > .layui-layer-close1,
body .layui-layer:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) > .layui-layer-setwin > .layui-layer-close2 {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: 32px !important;
  height: 32px !important;
  margin: 0 !important;
  border: 1px solid rgba(218,226,239,.88) !important;
  border-radius: 10px !important;
  background: rgba(248,250,253,.94) !important;
  color: #74839a !important;
  font-size: 0 !important;
  line-height: 1 !important;
  opacity: 1 !important;
  cursor: pointer !important;
  transform: none !important;
  transition: border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease !important;
}
body .layui-layer:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) > .layui-layer-setwin > .layui-layer-close1::before,
body .layui-layer:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) > .layui-layer-setwin > .layui-layer-close2::before {
  display: block;
  content: '\00d7';
  font-family: Arial,sans-serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 28px;
  text-align: center;
}
body .layui-layer:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) > .layui-layer-setwin > .layui-layer-close1:hover,
body .layui-layer:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) > .layui-layer-setwin > .layui-layer-close2:hover {
  border-color: #cdd8e8 !important;
  background: #eef3f9 !important;
  color: #263754 !important;
  box-shadow: 0 5px 12px rgba(38,55,84,.1) !important;
  transform: none !important;
}
body .layui-layer.site-unified-layer {
  left: 50% !important;
  width: 420px !important;
  max-width: calc(100vw - 28px) !important;
  /* Layer 的 layer-anim 会占用 transform；桌面端用半宽负外边距居中，避免动画结束后向右偏半个弹窗。 */
  margin-left: -210px !important;
  overflow: hidden !important;
  border: 1px solid rgba(218,226,239,.92) !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-shadow: 0 28px 80px rgba(21,35,65,.26), 0 8px 24px rgba(21,35,65,.12) !important;
}
body .layui-layer.site-unified-layer .layui-layer-title {
  box-sizing: border-box !important;
  height: auto !important;
  min-height: 128px !important;
  padding: 88px 34px 7px !important;
  border: 0 !important;
  background: #fff !important;
  color: #1d2b4c !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif !important;
  font-size: 21px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  white-space: normal !important;
}
body .layui-layer.site-unified-layer .layui-layer-title::before {
  position: absolute;
  top: 28px;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 19px;
  background: linear-gradient(145deg, #eef4ff, #e4eaff);
  color: #4b6fe8;
  box-shadow: 0 10px 24px rgba(75,111,232,.16);
  content: 'i';
  font-family: Georgia, serif;
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  transform: translateX(-50%) rotate(-3deg);
}
body .layui-layer.site-unified-layer--success .layui-layer-title::before { background: linear-gradient(145deg,#ecfaf4,#dbf5e9); color: #18a875; content: '\2713'; font-family: Arial,sans-serif; }
body .layui-layer.site-unified-layer--error .layui-layer-title::before,
body .layui-layer.site-unified-layer--danger .layui-layer-title::before { background: linear-gradient(145deg,#fff0f1,#ffe1e4); color: #e04455; content: '!'; font-family: Arial,sans-serif; }
body .layui-layer.site-unified-layer--warning .layui-layer-title::before,
body .layui-layer.site-unified-layer--confirm .layui-layer-title::before { background: linear-gradient(145deg,#fff8eb,#ffefd2); color: #df932e; content: '!'; font-family: Arial,sans-serif; }
body .layui-layer.site-unified-layer--prompt .layui-layer-title::before { content: '\25cf'; font-family: Arial,sans-serif; }
body .layui-layer.site-unified-layer .layui-layer-setwin { top: 18px !important; right: 18px !important; }
body .layui-layer.site-unified-layer .layui-layer-setwin .layui-layer-close {
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
  background: none !important;
  color: #76849a !important;
  font-size: 0 !important;
  opacity: .72 !important;
}
body .layui-layer.site-unified-layer .layui-layer-setwin .layui-layer-close::before { display: block; content: '\00d7'; font-family: Arial,sans-serif; font-size: 27px; font-weight: 400; line-height: 25px; text-align: center; }
body .layui-layer.site-unified-layer .layui-layer-content {
  box-sizing: border-box !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 8px 34px 22px !important;
  overflow: visible !important;
  background: #fff !important;
  color: #74839c !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
  text-align: center !important;
  white-space: normal !important;
  word-break: break-word !important;
}
body .layui-layer.site-unified-layer .layui-layer-content > .layui-layer-ico { display: none !important; }
body .layui-layer.site-unified-layer.layui-layer-prompt .layui-layer-content { padding-top: 12px !important; }
body .layui-layer.site-unified-layer .layui-layer-input {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 48px !important;
  margin: 5px 0 0 !important;
  padding: 0 14px !important;
  border: 1px solid #dce4f0 !important;
  border-radius: 12px !important;
  background: #f9fbfe !important;
  color: #263754 !important;
  font-size: 14px !important;
  box-shadow: inset 0 1px 2px rgba(31,48,82,.03) !important;
}
body .layui-layer.site-unified-layer textarea.layui-layer-input { height: 116px !important; padding-top: 12px !important; resize: vertical; }
body .layui-layer.site-unified-layer .layui-layer-input:focus { border-color: #6b88eb !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(75,111,232,.11) !important; outline: 0 !important; }
body .layui-layer.site-unified-layer .layui-layer-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 0 34px 30px !important;
  border: 0 !important;
  background: #fff !important;
  text-align: center !important;
}
body .layui-layer.site-unified-layer .layui-layer-btn a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  min-width: 0 !important;
  height: 44px !important;
  flex: 1 1 0 !important;
  margin: 0 !important;
  padding: 0 17px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg,#5684ee,#3f6fde) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  box-shadow: 0 8px 18px rgba(63,111,222,.22) !important;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
body .layui-layer.site-unified-layer .layui-layer-btn a:hover { opacity: 1 !important; transform: translateY(-1px); }
body .layui-layer.site-unified-layer .layui-layer-btn .layui-layer-btn1 { border: 1px solid #e1e7f0 !important; background: #f4f7fb !important; color: #5f708a !important; box-shadow: none !important; }
body .layui-layer.site-unified-layer--danger .layui-layer-btn .layui-layer-btn0,
body .layui-layer.site-unified-layer--error .layui-layer-btn .layui-layer-btn0 { background: linear-gradient(135deg,#ed5a67,#d93e51) !important; box-shadow: 0 8px 18px rgba(217,62,81,.22) !important; }
body .layui-layer.site-unified-layer--success .layui-layer-btn .layui-layer-btn0 { background: linear-gradient(135deg,#36bd8a,#179d6e) !important; box-shadow: 0 8px 18px rgba(23,157,110,.2) !important; }
body .layui-layer.site-unified-layer .layui-layer-btn:has(a:only-child) a { max-width: 250px !important; }

/* Layer 页面型/iframe 型弹窗仅统一外壳，内部业务表格、表单与尺寸保持原样。 */
body .layui-layer.site-unified-shell {
  overflow: hidden !important;
  border: 1px solid rgba(218,226,239,.92) !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: 0 28px 80px rgba(21,35,65,.25),0 8px 24px rgba(21,35,65,.11) !important;
}
body .layui-layer.site-unified-shell .layui-layer-title {
  box-sizing: border-box !important;
  height: 58px !important;
  padding: 0 58px 0 22px !important;
  border: 0 !important;
  border-bottom: 1px solid #edf1f7 !important;
  background: linear-gradient(135deg,#fff 0%,#f8faff 100%) !important;
  color: #1d2b4c !important;
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 58px !important;
}
body .layui-layer.site-unified-shell .layui-layer-setwin { top: 15px !important; right: 17px !important; }
body .layui-layer.site-unified-shell .layui-layer-setwin .layui-layer-close {
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
  background: none !important;
  color: #76849a !important;
  font-size: 0 !important;
  opacity: .72 !important;
}
body .layui-layer.site-unified-shell .layui-layer-setwin .layui-layer-close::before { display: block; content: '\00d7'; font-family: Arial,sans-serif; font-size: 27px; font-weight: 400; line-height: 26px; text-align: center; }
body .layui-layer.site-unified-shell .layui-layer-content { background: #fff; color: #405574; }
body .layui-layer.site-unified-shell .layui-layer-btn { margin: 0 !important; padding: 15px 22px 20px !important; border-top: 1px solid #edf1f7 !important; background: #fbfcfe !important; }
body .layui-layer.site-unified-shell .layui-layer-btn a { height: 40px !important; margin: 0 0 0 9px !important; padding: 0 20px !important; border: 0 !important; border-radius: 10px !important; background: linear-gradient(135deg,#5684ee,#3f6fde) !important; color: #fff !important; font-weight: 700 !important; line-height: 40px !important; }
body .layui-layer.site-unified-shell .layui-layer-btn .layui-layer-btn1 { border: 1px solid #e1e7f0 !important; background: #f4f7fb !important; color: #5f708a !important; }

/* Bootstrap Modal 只统一外壳与按钮，页面内的表单和业务内容保持原样。 */
body .modal .modal-content { overflow: hidden; border: 1px solid rgba(218,226,239,.92); border-radius: 20px; background: #fff; box-shadow: 0 28px 80px rgba(21,35,65,.24),0 8px 24px rgba(21,35,65,.1); }
body .modal .modal-header { min-height: 58px; padding: 18px 22px; border-bottom: 1px solid #edf1f7; background: linear-gradient(135deg,#fff 0%,#f8faff 100%); }
body .modal .modal-title { color: #1d2b4c; font-size: 18px; font-weight: 800; line-height: 1.35; }
body .modal .modal-header .close { margin-top: -3px; color: #76849a; font-size: 28px; font-weight: 400; opacity: .72; }
body .modal .modal-body { padding: 22px; color: #405574; line-height: 1.7; }
body .modal .modal-footer { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 15px 22px 20px; border-top: 1px solid #edf1f7; background: #fbfcfe; }
body .modal .modal-footer .btn { min-width: 92px; height: 40px; margin: 0; padding: 8px 18px; border-radius: 10px; font-weight: 700; }
body .modal .modal-footer .btn-primary,
body .modal .modal-footer .btn-success { border-color: transparent; background: linear-gradient(135deg,#5684ee,#3f6fde); color: #fff; box-shadow: 0 7px 16px rgba(63,111,222,.2); }
body .modal .modal-footer .btn-danger { border-color: transparent; background: linear-gradient(135deg,#ed5a67,#d93e51); color: #fff; box-shadow: 0 7px 16px rgba(217,62,81,.2); }
body .modal .modal-footer .btn-default { border-color: #e1e7f0; background: #f4f7fb; color: #5f708a; }

/* 后台少量 data-confirm 链接使用的 Bootstrap 确认框。 */
body #adminConfirmModal .site-admin-confirm-dialog { width: 420px; max-width: calc(100vw - 28px); margin: 11vh auto 30px; }
body #adminConfirmModal .modal-content { position: relative; border-radius: 22px; }
body #adminConfirmModal .site-admin-confirm-close { position: absolute; z-index: 2; top: 14px; right: 16px; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; color: #76849a; font-family: Arial,sans-serif; font-size: 27px; font-weight: 400; line-height: 30px; opacity: .72; }
body #adminConfirmModal .site-admin-confirm-body { padding: 28px 34px 22px; text-align: center; }
body #adminConfirmModal .site-admin-confirm-icon { display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin: 0 auto 14px; border-radius: 19px; background: linear-gradient(145deg,#fff0f1,#ffe1e4); color: #e04455; font-size: 22px; box-shadow: 0 10px 24px rgba(224,68,85,.14); }
body #adminConfirmModal .site-admin-confirm-title { margin: 0 0 12px; color: #1d2b4c; font-size: 21px; font-weight: 800; line-height: 1.35; }
body #adminConfirmModal .site-admin-confirm-message { color: #74839c; font-size: 14px; line-height: 1.75; word-break: break-word; }
body #adminConfirmModal .site-admin-confirm-footer { justify-content: center; padding: 0 34px 30px; border: 0; background: #fff; }
body #adminConfirmModal .site-admin-confirm-footer .btn { min-width: 0; height: 44px; flex: 1 1 0; border-radius: 12px; }

/*
 * 手机端最终兜底：Layer 先按桌面宽度计算 left，后续仅压缩宽度会沿用旧坐标。
 * 统一限制视口尺寸并重新居中，覆盖后台、用户中心、供应商和前台共用弹窗。
 */
@media (max-width: 767px) {
  body .layui-layer-page:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos),
  body .layui-layer-iframe:not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) {
    box-sizing: border-box !important;
    left: 10px !important;
    right: 10px !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100vh - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    transform: none !important;
  }

  body .layui-layer-dialog:not(.layui-layer-hui):not(.layui-layer-tips):not(.layui-layer-loading):not(.layui-layer-photos) {
    box-sizing: border-box !important;
    left: 50% !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100vh - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    margin-left: 0 !important;
    transform: translateX(-50%) !important;
  }

  body .layui-layer.site-unified-shell .layui-layer-content {
    max-height: calc(100vh - 148px) !important;
    max-height: calc(100dvh - 148px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  body .layui-layer.ol-order-detail,
  body .layui-layer.ol-layer,
  body .layui-layer.ol-plain,
  body .layui-layer.os-layer {
    width: calc(100vw - 20px) !important;
  }

  body .layui-layer.ol-layer .ol-wrap,
  body .layui-layer.ol-plain .ol-wrap,
  body .layui-layer.os-layer .os-wrap {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: none;
  }
}

@media (max-width: 480px) {
  body .layui-layer.site-unified-layer { width: calc(100vw - 28px) !important; border-radius: 18px !important; }
  body .layui-layer.site-unified-layer .layui-layer-title { min-height: 118px !important; padding: 82px 22px 6px !important; font-size: 19px !important; }
  body .layui-layer.site-unified-layer .layui-layer-title::before { top: 24px; width: 54px; height: 54px; }
  body .layui-layer.site-unified-layer .layui-layer-content { padding-right: 22px !important; padding-left: 22px !important; font-size: 13px !important; }
  body .layui-layer.site-unified-layer .layui-layer-btn { padding: 0 22px 24px !important; }
  body .layui-layer.site-unified-layer .layui-layer-btn a { height: 42px !important; padding: 0 10px !important; font-size: 13px !important; }
  body .layui-layer.site-unified-shell { max-width: calc(100vw - 20px) !important; border-radius: 17px !important; }
  body .layui-layer.site-unified-shell .layui-layer-title { height: 54px !important; padding-left: 18px !important; font-size: 16px !important; line-height: 54px !important; }
  body .layui-layer.site-unified-shell .layui-layer-setwin { top: 13px !important; }
  body .layui-layer.site-unified-shell .layui-layer-btn { display: flex; gap: 9px; padding: 13px 18px 18px !important; }
  body .layui-layer.site-unified-shell .layui-layer-btn a { min-width: 0; flex: 1 1 0; margin: 0 !important; padding: 0 10px !important; text-align: center; }
  body .modal .modal-dialog { margin: 14px; }
  body .modal .modal-content { border-radius: 17px; }
  body .modal .modal-header { padding: 16px 18px; }
  body .modal .modal-body { padding: 18px; }
  body .modal .modal-footer { padding: 13px 18px 18px; }
  body .modal .modal-footer .btn { min-width: 0; flex: 1 1 0; padding-right: 10px; padding-left: 10px; }
  body #adminConfirmModal .site-admin-confirm-dialog { width: calc(100vw - 28px); margin-top: 8vh; }
  body #adminConfirmModal .site-admin-confirm-body { padding: 24px 22px 20px; }
  body #adminConfirmModal .site-admin-confirm-title { font-size: 19px; }
  body #adminConfirmModal .site-admin-confirm-footer { padding: 0 22px 24px; }
}
