@charset "utf-8";
/* 暖心益联 - layui 弹窗（layer 对话框）统一风格
   与登录页 login-v2.css 同一套设计语言：白卡片 / 大圆角 / 柔和阴影 / 主按钮。

   主按钮颜色【跟随菜单主题色】（走 --adm-btn），不再是写死的蓝色渐变。
   兜底色仍取原来的蓝 #2d6bf0 —— 因为登录页也引用本文件但拿不到 --adm-btn，
   详见下面「按钮栏」一节里 var() 第二参数那段说明。

   改这个文件前请先读这三条：

   1) layer 的样式表是【运行时由 JS 追加到 <head>】的（layui.all.js 内 layer.ready()），
      排在页面自身 <link> 之后。所以每条规则都加 body 前缀提权，
      不能指望「写在后面」取胜。

   2) 只作用于 .layui-layer-dialog —— 即 layer 的 type=0 对话框（dialog() / layer.alert /
      layer.confirm / layer.msg）。后台所有自定义皮肤（layui-layer-admin、
      layadmin-note、modal-areas、layui-layer-nobg、ayui-layer-nobg、line、
      layui-layer-adminRight）经全项目排查【全部挂在 type:1 面板上】，
      不会带 .layui-layer-dialog，天然不受影响，故无需逐个排除。

   3) 唯一的例外是 .layui-layer-hui —— layer.msg 的深色 toast，它同样是 type=0。
      必须排除，否则会被刷成白底。它是本项目最高频的提示，动它风险最大。

   图标沿用 layui 自带的 icon.png 雪碧图（本身已是圆形描边徽章），未作替换，
   因此本文件零额外图片依赖。 */

/* 统一的基础选择器（同一条，保证各规则权重可比、不会互相压制） */
/* body .layui-layer-dialog:not(.layui-layer-hui)  →  权重 (0,3,1) */

/* ============ 遮罩 ============ */
/* layer 用行内 style 写 background-color，必须 !important 才能覆盖。
   只换颜色（改深藏青），透明度仍由 layer 的 shade 参数控制，量级不变。 */
body .layui-layer-shade {
    background-color: #0b1b33 !important;
}

/* ============ 卡片主体 ============ */
body .layui-layer-dialog:not(.layui-layer-hui) {
    border: none;
    border-radius: 16px;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 24px 60px -18px rgba(21, 48, 105, .28), 0 2px 8px rgba(21, 48, 105, .06);
}

/* 标题栏 */
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-title {
    height: 46px;
    line-height: 46px;
    padding: 0 58px 0 22px;
    font-size: 15px;
    font-weight: 600;
    color: #1b2536;
    background-color: #fff;
    border-bottom: 1px solid #eef2f9;
    border-radius: 16px 16px 0 0;
}

/* 关闭按钮 */
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-setwin {
    top: 16px;
    right: 16px;
}
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-setwin .layui-layer-close1 {
    opacity: .45;
    transition: opacity .18s ease;
}
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-setwin .layui-layer-close1:hover {
    opacity: .85;
}

/* 内容区（无图标） */
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-content {
    padding: 22px;
    font-size: 14px;
    line-height: 24px;
    color: #4a5468;
}

/* 内容区（带图标：icon != -1 时 layer 会加 .layui-layer-padding）
   图标 30px 宽、定位在 left:20px，正文左内边距 62px = 20 + 30 + 12，与图标留出呼吸感。
   注意权重：本规则 (0,5,1) 高于上面的无图标规则 (0,4,1)，故能正常生效。 */
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-content.layui-layer-padding {
    padding: 22px 22px 22px 62px;
    text-align: left;
}
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-content .layui-layer-ico {
    top: 21px;
    left: 20px;
}

/* ============ 按钮栏 ============ */
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-btn {
    padding: 0 22px 20px;
}
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-btn a {
    height: 36px;
    line-height: 34px;
    padding: 0 20px;
    margin: 6px 0 0 10px;
    font-size: 13px;
    font-weight: 400;
    color: #56617a;
    background-color: #fff;
    border: 1px solid #dbe3f0;
    border-radius: 10px;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, filter .16s ease;
}
/* 取消/次要按钮的悬停强调色跟随主题。
   原先写死的是蓝色 #2d6bf0 / #4f8cff，与「弹窗确定按钮也跟随主题色」的决策不一致。

   ⚠️ 这里的 var() 第二个参数【不能省】。本文件除了后端页面，
   还被 login/index.html、reg.html、getpwd.html 三张登录页直接引用，
   而那三张页面【不 include public/css.html】，所以 --adm-btn 在它们上面是未定义的。
   若写成裸 var(--adm-btn)，带兜底值的是后端页面，登录页则会替换失败 →
   该声明整条失效，color 退回继承、border-color 退回初始值，弹窗按钮当场错样。
   给出 #2d6bf0 / #4f8cff 作为兜底 = 登录页保持原来的蓝色，与 login-v2.css 一致。 */
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-btn a:hover {
    opacity: 1;
    color: var(--adm-btn, #2d6bf0);
    border-color: var(--adm-btn, #4f8cff);
    background-color: #f4f8ff;
}
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-btn a:active {
    opacity: 1;
}
/* 主按钮：layer 里第一个按钮固定带 layui-layer-btn0。
   颜色跟随菜单主题色（原先写死蓝色渐变）。
   注意这里用 background-color 打主题色、再用 background-image 叠一层白色高光，
   而不是像原来那样整个 background 走渐变 —— 渐变的两个色标必须写死，
   没法用单个十六进制变量表达，所以改成「纯色 + 高光叠加」，对 9 套配色都成立。
   阴影同理：原来是同色系蓝色光晕，拿不到主题色的 RGB 就做不出来，
   改用中性柔影，任何底色上都不显脏。
   兜底值 #2d6bf0 的原因同上面「取消按钮」那条：登录页没有 --adm-btn。 */
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-btn .layui-layer-btn0 {
    color: #fff;
    border-color: transparent;
    background-color: var(--adm-btn, #2d6bf0);
    background-image: linear-gradient(135deg, rgba(255, 255, 255, .18) 0%, rgba(255, 255, 255, 0) 55%);
    box-shadow: 0 10px 20px -10px rgba(21, 48, 105, .5);
}
body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-btn .layui-layer-btn0:hover {
    filter: brightness(1.06);
    border-color: transparent;
}

/* ============ layer.msg 深色 toast ============ */
/* 刻意【不】套用上面的白卡片样式，只把方角改成圆角，保持它「黑底轻提示」的身份。
   这里只设 border-radius / box-shadow，不碰背景色和文字色，避免影响可读性。 */
body .layui-layer-hui {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 28px -12px rgba(9, 24, 52, .55);
}

/* ============ 出现动画 ============ */
/* layer 默认 anim-0 是从 0.5 倍缩放弹出来，比较「弹」；
   换成与登录卡片一致的轻微上浮淡入。只作用于对话框。 */
@keyframes popup-v2-in {
    from { opacity: 0; transform: translateY(10px) scale(.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
body .layui-layer-dialog.layer-anim-00 {
    -webkit-animation-name: popup-v2-in;
    animation-name: popup-v2-in;
}

/* ============ 窄屏 ============ */
@media screen and (max-width: 480px) {
    body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-content {
        padding: 18px;
    }
    body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-content.layui-layer-padding {
        padding: 18px 18px 18px 58px;
    }
    body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-content .layui-layer-ico {
        top: 17px;
        left: 17px;
    }
    body .layui-layer-dialog:not(.layui-layer-hui) .layui-layer-btn {
        padding: 0 18px 16px;
    }
}
