/* 喇叭花 · layer 弹窗与 toastr 通知的品牌皮肤覆盖
   dialog.js 统一注入 skin: lb-layer（危险操作追加 lb-danger），notify.js 使用 toastr 右上角 */

/* ---- layer 品牌化 ---- */
.lb-layer { border-radius: 14px !important; overflow: hidden; box-shadow: 0 24px 60px -18px rgba(11, 42, 74, .4) !important; }
.lb-layer .layui-layer-title { background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); font-weight: 700; font-size: 15px; }
.lb-layer .layui-layer-content { color: var(--ink); font-size: 14px; line-height: 1.7; }
.lb-layer .layui-layer-btn { padding: 0 18px 16px; }
.lb-layer .layui-layer-btn a { border: none; border-radius: 9px; background: var(--b1); color: #fff;
                                font-size: 13px; font-weight: 600; padding: 0 20px; min-width: 72px;
                                /* layer 默认只有 28px 高，页面主按钮 .btn-gradient 是 40px，对齐它；
                                   border-box 让描边的次要按钮和实心主按钮等高 */
                                height: 40px; line-height: 38px; box-sizing: border-box; }
.lb-layer .layui-layer-btn a:hover { opacity: .88; }
.lb-layer .layui-layer-btn .layui-layer-btn0 { background: var(--b1); }
.lb-layer.lb-danger .layui-layer-btn0 { background: var(--danger, #ef4444); }
.lb-layer .layui-layer-setwin .layui-layer-close1 { filter: grayscale(.4) opacity(.55); }
/* 表单类弹窗（uiPrompt / uiForm）自带内边距：layer 的 type=1 content 默认 padding:0，内容会贴边。
   ⚠️ 加这条的前提是 dialog.js 的 area 第二项必须传 '' 而不是 'auto'，否则内容会被裁掉（见 dialog.js 注释） */
.lb-layer .lb-form { padding: 20px 20px 6px; }
.lb-layer .lb-f { margin: 6px 0 12px; }
.lb-layer .lb-f label { display: block; font-size: 12px; color: var(--ink2); margin-bottom: 6px; }
.lb-layer .lb-i { width: 100%; border: 1.5px solid var(--line); border-radius: 10px; padding: 10px 12px;
                  font-size: 14px; color: var(--ink); box-sizing: border-box; }
.lb-layer .lb-i:focus { outline: none; border-color: var(--b1); }
.lb-layer .lb-i.lb-invalid { border-color: #ef4444; }
.lb-layer .lb-desc { margin: 0; font-size: 12px; line-height: 1.6; color: var(--ink2); }
.lb-layer .lb-err { margin: 8px 0 0; font-size: 12px; color: #ef4444; }
/* 次要按钮（取消）：弱化为描边，和主按钮拉开层级（layer 默认给两个按钮同款实心色） */
.lb-layer .layui-layer-btn .layui-layer-btn1 { background: #fff; color: var(--ink2);
                                               border: 1.5px solid var(--line); }
.lb-layer .layui-layer-btn .layui-layer-btn1:hover { background: #f7f8fa; opacity: 1; }

/* ---- toastr 品牌化（右上角深色胶囊，位置由 notify.js 的 positionClass 决定） ---- */
/* 下移避开顶栏操作区：toastr 的 topOffset 只对 top-center/full-width 生效，角落位置必须用 CSS。
   教师端顶栏 .dash-top 高 70px，其右上角是「＋ 新建班级」按钮（top 15~54），
   沿用 toastr 默认的 12px 会直接盖住按钮；用 id 提优先级压过 .toast-top-right{top:12px}。 */
#toast-container.toast-top-right { top: 80px; }
/* 品牌皮肤必须带 #toast-container 前缀才压得住 toastr 自带的 `#toast-container>div`
   （(1,0,1) 胜过 (0,2,0) 的类选择器）；只写 .toast-top-right .toast 会静默失效，
   表现为回到 toastr 默认的灰底 #030303 + opacity .8 直角块。 */
#toast-container.toast-top-right > div { background-color: #0b2a4a; border-radius: 999px;
                                         box-shadow: 0 10px 30px rgba(0, 0, 0, .3); opacity: .96; }
#toast-container.toast-top-right > div.toast-success { background-color: #0b2a4a; }
#toast-container.toast-top-right > div.toast-error { background-color: #dc2626; border-radius: 14px; }
#toast-container.toast-top-right > div .toast-message { font-size: 13px; }
/* 窄屏兜底：toastr 默认固定 300px 宽，手机上会横向溢出 */
#toast-container.toast-top-right > div { max-width: calc(100vw - 32px); }
/* 小屏（≤900px）教师端多一条 58px 的 .dash-mtop，顶栏合计 128px，80px 会正好压在按钮上 */
@media (max-width: 900px) {
  #toast-container.toast-top-right { top: 138px; }
}
