/* ═══════════════════════════════════════════════════════════════════
   Ultra 主题 · 反馈层美化 (layui layer 弹层/加载 + toastr 消息)
   在 layer.css / toastr.css 之后加载，覆盖库默认皮肤，统一到 ultra 视觉。
   变量参考 ultra.css :root
   ═══════════════════════════════════════════════════════════════════ */
:root{
  --uf-blue:#2f6bff; --uf-purple:#7c3aed; --uf-ink:#0f172a; --uf-body:#5b6478;
  --uf-line:#e6e8ef; --uf-bg-soft:#f7f8fb; --uf-green:#16a34a; --uf-red:#ef4444;
  --uf-amber:#f59e0b; --uf-grad:linear-gradient(118deg,#2f6bff 0%,#4b62f0 55%,#7c3aed 100%);
  --uf-sh:0 24px 60px rgba(15,23,42,.16); --uf-r:14px; --uf-r-lg:18px;
  --uf-font:'Inter',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',Segoe UI,sans-serif;
}

/* ─────────── toastr 消息提示 ─────────── */
#toast-container > div{
  opacity:1 !important;
  border-radius:var(--uf-r) !important;
  padding:15px 42px 15px 52px !important;
  min-width:280px !important;
  box-shadow:var(--uf-sh) !important;
  font-family:var(--uf-font) !important;
  background-position:17px center !important;
  background-size:22px 22px !important;
  border:none !important;
}
#toast-container > div:hover{ box-shadow:var(--uf-sh) !important; }
#toast-container > .toast{ color:#fff; }
.toast-title{ font-weight:700 !important; font-size:14px !important; line-height:1.45 !important; }
.toast-message{ font-size:13px !important; line-height:1.55 !important; opacity:.95; word-break:break-word; }
.toast-close-button{
  position:absolute; top:10px; right:12px; opacity:.7; font-size:16px; font-weight:400;
  color:#fff !important; text-shadow:none !important; transition:opacity .18s;
}
.toast-close-button:hover{ opacity:1; }
.toast-success{ background-color:var(--uf-green) !important; }
.toast-error{   background-color:var(--uf-red) !important; }
.toast-info{    background-color:var(--uf-blue) !important; }
.toast-warning{ background-color:var(--uf-amber) !important; }
.toast-progress{ opacity:.35 !important; height:3px !important; background:#fff !important; }
@media (max-width:600px){ #toast-container > div{ min-width:auto !important; width:calc(100vw - 32px) !important; } }

/* ─────────── layui layer 弹层 / 对话框 ─────────── */
.layui-layer{
  border-radius:var(--uf-r-lg) !important;
  box-shadow:var(--uf-sh) !important;
  border:none !important;
  font-family:var(--uf-font) !important;
  overflow:hidden;
}
.layui-layer-title{
  height:52px !important; line-height:52px !important; padding:0 22px !important;
  background:var(--uf-bg-soft) !important; color:var(--uf-ink) !important;
  border-bottom:1px solid var(--uf-line) !important; font-weight:700 !important; font-size:15px !important;
}
.layui-layer-setwin{ top:18px !important; right:18px !important; }
.layui-layer-setwin .layui-layer-close1{ opacity:.55; transition:opacity .18s; }
.layui-layer-setwin .layui-layer-close1:hover{ opacity:1; }
.layui-layer-content{ color:var(--uf-body) !important; }
.layui-layer-dialog .layui-layer-content{ padding:22px 24px !important; font-size:14px !important; line-height:1.7 !important; color:var(--uf-ink) !important; }
/* 底部按钮 */
.layui-layer-btn{ border-top:1px solid var(--uf-line) !important; padding:14px 22px 18px !important; text-align:right !important; }
.layui-layer-btn a{
  height:auto !important; line-height:1.4 !important; padding:9px 22px !important; margin:0 0 0 10px !important;
  border-radius:999px !important; border:1px solid var(--uf-line) !important;
  background:#fff !important; color:var(--uf-body) !important; font-weight:600 !important; font-size:13.5px !important;
  transition:all .18s;
}
.layui-layer-btn a:hover{ border-color:var(--uf-blue) !important; color:var(--uf-blue) !important; }
.layui-layer-btn .layui-layer-btn0{
  background:var(--uf-grad) !important; border:none !important; color:#fff !important;
  box-shadow:0 8px 20px rgba(124,58,237,.28) !important;
}
.layui-layer-btn .layui-layer-btn0:hover{ color:#fff !important; transform:translateY(-1px); }
/* 遮罩 */
.layui-layer-shade{ background-color:rgba(15,23,42,.42) !important; }

/* 加载层：白色圆角卡片 + ultra 渐变环形 spinner (替换默认 gif)
   注意：改了尺寸后 layui 用旧尺寸算出的 top/left 会偏，这里强制屏幕居中 */
.layui-layer-loading{
  position:fixed !important; top:50% !important; left:50% !important; transform:translate(-50%,-50%) !important; margin:0 !important;
  background:#fff !important; width:76px !important; height:76px !important;
  border-radius:var(--uf-r) !important; box-shadow:var(--uf-sh) !important;
}
.layui-layer-loading .layui-layer-content{ display:none !important; }
.layui-layer-loading::after{
  content:''; position:absolute; top:50%; left:50%; width:34px; height:34px; margin:-17px 0 0 -17px; box-sizing:border-box;
  border-radius:50%; border:3px solid rgba(124,58,237,.18); border-top-color:var(--uf-purple);
  animation:uf-spin .7s linear infinite;
}
@keyframes uf-spin{ to{ transform:rotate(360deg); } }
/* 小提示 tips/msg 圆角 */
.layui-layer-msg, .layui-layer-tips .layui-layer-content{ border-radius:12px !important; font-family:var(--uf-font) !important; }

/* ─────────── Element 弹窗 (el-dialog) 美化 · 加入购物车提示等 ─────────── */
.el-dialog{
  border-radius:var(--uf-r-lg) !important;
  box-shadow:var(--uf-sh) !important;
  overflow:hidden;
  font-family:var(--uf-font) !important;
  border:none !important;
}
.el-dialog__header{ padding:20px 26px 0 !important; }
.el-dialog__title{ color:var(--uf-ink) !important; font-weight:700 !important; font-size:16px !important; }
.el-dialog__headerbtn{ top:18px !important; right:20px !important; }
.el-dialog__headerbtn .el-dialog__close{ color:var(--uf-muted,#94a3b8) !important; font-size:18px !important; transition:color .18s; }
.el-dialog__headerbtn:hover .el-dialog__close{ color:var(--uf-ink) !important; }
.el-dialog__body{ padding:34px 30px 12px !important; color:var(--uf-ink) !important; font-size:15.5px !important; line-height:1.7 !important; }
.el-dialog__body .text-center{ color:var(--uf-ink) !important; font-weight:600; }
.el-dialog__body .font-24{ font-size:19px !important; }
.el-dialog__footer{ padding:14px 30px 28px !important; }
.el-dialog__footer .dialog-footer{ text-align:center !important; }
/* 弹窗内按钮：主按钮走 ultra 渐变、次按钮描边胶囊 (仅作用于弹窗内, 不影响页面其它 el-button) */
.el-dialog .el-button{
  border-radius:999px !important; font-weight:600 !important; font-size:14px !important;
  padding:11px 26px !important; font-family:var(--uf-font) !important; transition:all .18s;
}
.el-dialog .el-button + .el-button{ margin-left:12px !important; }
.el-dialog .el-button--primary{
  background:var(--uf-grad) !important; border:none !important; color:#fff !important;
  box-shadow:0 8px 20px rgba(124,58,237,.28) !important;
}
.el-dialog .el-button--primary:hover{ transform:translateY(-1px); color:#fff !important; }
.el-dialog .el-button--default{ border:1px solid var(--uf-line) !important; color:var(--uf-body) !important; background:#fff !important; }
.el-dialog .el-button--default:hover{ border-color:var(--uf-blue) !important; color:var(--uf-blue) !important; background:#fff !important; }
/* 遮罩 */
.v-modal{ background:rgba(15,23,42,.42) !important; }
