/* ============================================================
   fastadmin 风格提示（gk-tip）
   覆盖 layer.msg（右上角 Toast）与 layer.alert（居中弹窗）的视觉
   ============================================================ */

/* ---------- 右上角 Toast ---------- */
.gk-toast-wrap {
    position: fixed;
    top: 76px;
    right: 18px;
    z-index: 19999999;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    pointer-events: none;
}
.gk-toast {
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 220px;
    max-width: 340px;
    padding: 12px 16px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 8px 28px -6px rgba(18, 20, 43, .18), 0 2px 8px rgba(18, 20, 43, .08);
    font-size: 14px;
    color: #12142b;
    line-height: 1.5;
    border-left: 4px solid #1677ff;
    animation: gkToastIn .28s ease;
    transition: opacity .3s, transform .3s;
}
.gk-toast .gk-toast-ico {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    font-family: Arial, sans-serif;
}
.gk-toast .gk-toast-ico svg { width: 12px; height: 12px; display: block; }
.gk-toast.success { border-left-color: #16c79a; }
.gk-toast.success .gk-toast-ico { background: #16c79a; }
.gk-toast.error   { border-left-color: #ff5c5c; }
.gk-toast.error   .gk-toast-ico { background: #ff5c5c; }
.gk-toast.warning { border-left-color: #ff9f2e; }
.gk-toast.warning .gk-toast-ico { background: #ff9f2e; }
.gk-toast.info    { border-left-color: #1677ff; }
.gk-toast.info    .gk-toast-ico { background: #1677ff; }
.gk-toast.hide { opacity: 0; transform: translateX(20px); }
@keyframes gkToastIn {
    from { opacity: 0; transform: translateX(24px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ---------- 居中弹窗（layer.alert 改造） ---------- */
.gk-modal-mask {
    position: fixed;
    inset: 0;
    z-index: 19999998;
    background: rgba(18, 20, 43, .42);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: gkMaskIn .2s ease;
}
.gk-modal {
    width: 300px;
    max-width: calc(100vw - 40px);
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 24px 60px -12px rgba(18, 20, 43, .3);
    padding: 28px 24px 20px;
    text-align: center;
    animation: gkModalIn .24s ease;
}
.gk-modal .gk-modal-ico {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    margin: 0 auto 14px;
    display: grid;
    place-items: center;
    color: #fff;
}
.gk-modal .gk-modal-ico svg { width: 26px; height: 26px; display: block; }
.gk-modal.success .gk-modal-ico { background: #16c79a; }
.gk-modal.error   .gk-modal-ico { background: #ff5c5c; }
.gk-modal.warning .gk-modal-ico { background: #ff9f2e; }
.gk-modal.info    .gk-modal-ico { background: #1677ff; }
.gk-modal .gk-modal-msg {
    font-size: 15px;
    color: #12142b;
    line-height: 1.7;
    word-break: break-word;
    margin: 0 0 22px;
}
.gk-modal .gk-modal-btn {
    display: inline-block;
    min-width: 96px;
    padding: 9px 26px;
    border-radius: 8px;
    background: #1677ff;
    color: #fff;
    font-size: 14px;
    border: 0;
    cursor: pointer;
    transition: background .2s;
}
.gk-modal .gk-modal-btn:hover { background: #0f66d6; }
.gk-modal.success .gk-modal-btn { background: #16c79a; }
.gk-modal.success .gk-modal-btn:hover { background: #12b087; }
.gk-modal.error   .gk-modal-btn { background: #ff5c5c; }
.gk-modal.error   .gk-modal-btn:hover { background: #f04a4a; }
.gk-modal.warning .gk-modal-btn { background: #ff9f2e; }
.gk-modal.warning .gk-modal-btn:hover { background: #f28d1c; }
@keyframes gkMaskIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes gkModalIn {
    from { opacity: 0; transform: translateY(16px) scale(.96); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
