/* ===== Swal 弹窗覆盖 ===== */
.login-modal-swal{
    border-radius:16px!important;
    overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.15)!important;
    border:none!important;
}
.login-modal-swal .swal2-close{
    top:14px!important;right:14px!important;
    color:#999!important;font-size:20px!important;
    transition:all .2s!important;
}
.login-modal-swal .swal2-close:hover{color:#333!important;transform:rotate(90deg);}
.login-modal-swal .swal2-loading{display:none!important;}

/* ===== 登录弹窗 ===== */
.login-modal{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    padding:0;overflow:hidden;
}
/* 顶部 Logo 区 */
.login-header{
    text-align:center;padding:36px 32px 20px;
}
.login-logo{
    display:block;margin:0 auto 14px;
    height:42px;width:auto;
    border-radius:10px;
}
.login-title{
    font-size:18px;font-weight:700;color:#1a1a2e;margin:0;
}
/* 表单区域 */
.login-body{
    padding:0 32px 28px;
}
/* Tab 切换 */
.login-tabs{
    display:flex;gap:0;margin-bottom:24px;
    background:#f4f5f7;border-radius:10px;padding:3px;
}
.login-tab{
    flex:1;text-align:center;padding:10px 0;
    font-size:14px;font-weight:600;color:#999;
    border-radius:8px;cursor:pointer;
    transition:all .25s ease;user-select:none;
}
.login-tab.active{
    background:#fff;color:#1a1a2e;
    box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.login-tab:hover:not(.active){color:#666;}
/* 输入框 */
.login-field{margin-bottom:18px;}
.login-field label{
    display:block;font-size:13px;font-weight:600;
    color:#374151;margin-bottom:7px;
}
.login-field label .required{color:#ef4444;margin-left:2px;}
.login-input-wrap{position:relative;}
.login-input-wrap .fi{
    position:absolute;left:14px;top:50%;transform:translateY(-50%);
    color:#9ca3af;font-size:15px;pointer-events:none;z-index:2;
    transition:color .2s;
}
.login-input{
    width:100%;height:48px;
    padding:0 14px 0 42px;
    border:1.5px solid #e5e7eb;
    border-radius:12px;
    font-size:15px;color:#1a1a2e;
    background:#fafbfc;outline:none;
    transition:all .25s ease;
    box-sizing:border-box;
}
.login-input:focus{
    border-color:#1E78FF;background:#fff;
    box-shadow:0 0 0 3px rgba(30,120,255,.08);
}
.login-input:focus ~ .fi{color:#1E78FF;}
.login-input::placeholder{color:#c0c4cc;}
/* 密码输入右侧留空给 toggle */
.login-input.has-toggle{padding-right:44px;}
/* 验证码行 */
.login-code-row{display:flex;gap:10px;align-items:flex-start;}
.login-code-row .login-field{flex:1;margin-bottom:0;}
.btn-code{
    height:48px;padding:0 20px;margin-top:24px;
    border:1.5px solid #1E78FF;background:#fff;
    color:#1E78FF;border-radius:12px;
    font-size:14px;font-weight:600;
    cursor:pointer;white-space:nowrap;
    transition:all .2s ease;flex-shrink:0;
}
.btn-code:hover{background:rgba(30,120,255,.06);border-color:#1666e0;}
.btn-code:disabled{
    border-color:#e5e7eb;color:#c0c4cc;
    background:#f9fafb;cursor:not-allowed;
}
/* 错误提示 */
.login-error{
    display:none;margin-bottom:14px;padding:10px 14px;
    background:#fef2f2;border:1px solid #fecaca;
    border-radius:10px;color:#dc2626;
    font-size:13px;text-align:center;
    animation:loginShake .4s ease;
}
@keyframes loginShake{
    0%,100%{transform:translateX(0)}
    20%{transform:translateX(-4px)}40%{transform:translateX(4px)}
    60%{transform:translateX(-2px)}80%{transform:translateX(2px)}
}
/* 登录按钮 */
.btn-login{
    width:100%;height:50px;border:none;
    background:#1E78FF;border-radius:12px;
    color:#fff;font-size:15px;font-weight:700;
    cursor:pointer;transition:all .25s ease;
    letter-spacing:1px;
}
.btn-login:hover{background:#1666e0;transform:translateY(-1px);box-shadow:0 6px 20px rgba(30,120,255,.25);}
.btn-login:active{transform:translateY(0);}
.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important;}
/* 底部 */
.login-footer{text-align:center;margin-top:16px;font-size:12px;color:#9ca3af;}
.login-footer a{color:#1E78FF;text-decoration:none;font-weight:500;}
.login-footer a:hover{text-decoration:underline;}
/* Tab 面板 */
.login-panel{display:none;}
.login-panel.active{display:block;}
/* 密码可见切换 */
.toggle-pwd{
    position:absolute;right:14px;top:50%;transform:translateY(-50%);
    background:none;border:none;color:#9ca3af;cursor:pointer;
    font-size:15px;padding:0;transition:color .2s;
}
.toggle-pwd:hover{color:#6b7280;}
