* {
    font-family: 微软雅黑;
}

/* 浏览器默认给 body 8px 外边距；叠加下面的 min-height:100vh 之后，
   文档高度 = 100vh + 16px，永远比视口高一点 → 右侧常驻一条竖向滚动条。清零即可。
   （顺带让背景图铺满整屏，不再留 8px 白边） */
html,
body {
    margin: 0;
    padding: 0;
}

body {
    /* 背景：底色 + 一层淡色渐变（蓝→绿，带一点颜色但很轻）+ 原图。
       两层都 cover，窄窗下也不会露白块；fixed 让滚动时背景不跟着跑 */
    min-height: 100vh;
    /* display:flow-root 建 BFC，专门用来拦住「子元素 margin 与 body 折叠」：
       折叠时 .login-card 那 8vh 的 margin-top 会跑到 body 外面，
       文档高度变成 100vh + 8vh，右侧就常驻一条竖向滚动条
       （实测：innerHeight 507，doc.scrollHeight 548，多出的 41px 就是 8vh） */
    display: flow-root;
    background-color: #EDF1F7;
    background-image:
        linear-gradient(135deg, rgba(64, 158, 255, 0.26) 0%, rgba(140, 190, 255, 0.12) 42%, rgba(103, 194, 58, 0.16) 100%),
        url("/img/image.jpg");
    background-repeat: no-repeat, no-repeat;
    background-size: cover, cover;
    background-position: center center, center center;
    background-attachment: fixed, fixed;
}

/* 卡片：半透明玻璃质感，让背后的背景隐约透出来（原来是不透明白底，整页看着一片白） */
.login-card {
    /* 原来 width:26%：1024 宽屏下只有 266px，验证码那种一行多控件会被挤爆；改成定宽更像登录卡 */
    width: 440px;
    max-width: 92%;
    text-align: center;
    margin: 8vh auto 0;
}

.login-card .el-card {
    background-color: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(31, 45, 61, 0.14);
    /* 毛玻璃：不支持 backdrop-filter 的浏览器会退化成上面的半透明白，不影响可读性 */
    backdrop-filter: blur(12px) saturate(130%);
    -webkit-backdrop-filter: blur(12px) saturate(130%);
}

.login-card .el-card__body {
    padding: 26px 26px 22px;
}

.label-login {
    font-size: 26px;
    letter-spacing: 2px;
    color: #2B3A4A;
}

.setstyle {
    min-height: 200px;
    padding: 0 !important;
    margin: 0;
    overflow: auto;
    cursor: default !important;
}

.el-select {
    width: 100%;
}

.el-form-select-div {
    font-size: 16px;
    font-weight: bold;
    margin-top: 15px;
    width: 95%;
}

.el-form-text-div {
    font-size: 16px;
    font-weight: bold;
    width: 95%;
}

.el-form-password-div {
    font-size: 16px;
    font-weight: bold;
    width: 95%;
}

/* 登录按钮那一行：默认 100% 会比上面 95% 的输入框宽出一截，右边缘对不齐 */
.el-form-submit-div {
    width: 95%;
}

.captcha-dialog.el-dialog--center .el-dialog__body {
    text-align: initial;
    padding: 5px 20px 8px;
}

/* 登录页：验证码内联在密码下方（布局参考小程序账号登录页），不再用弹窗 */
.el-form-captcha-div {
    font-size: 16px;
    font-weight: bold;
    width: 95%;
}

.login-captcha-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.login-captcha-expression {
    font-size: 15px;
    font-weight: bold;
    letter-spacing: 1px;
    color: #409EFF;
    white-space: nowrap;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

/* 验证码输入框撑满剩余宽度：整行右边缘就与上面账号 / 密码输入框的右边缘对齐 */
.login-captcha-answer {
    flex: 1 1 auto;
    min-width: 0;
}

/* 与账号 / 密码输入框同字号、同内边距，占位文案的字号与起始位置才对得上 */
.login-captcha-answer .el-input__inner {
    font-size: 16px;
    padding: 0 15px;
}

.login-captcha-refresh {
    flex: 0 0 auto;
    padding: 0;
    font-size: 12px;
    white-space: nowrap;
}

/* 登录页：验证码 / 登录失败等提示就地显示，不弹提示框 */
.login-inline-error {
    margin: -6px 0 12px 60px;
    color: #F56C6C;
    font-size: 12px;
    line-height: 1.4;
    text-align: left;
    word-break: break-all;
}

/* .login-card 上有一条 text-align:center，会把 el-form-item 的错误文案也居中，这里按常规左对齐 */
.login-card .el-form-item__error {
    text-align: left;
}

/* 错误文案是绝对定位，多行时会压到下一个输入框：出错时把该项底部间距让开 */
.login-card .el-form-item.is-error {
    margin-bottom: 34px;
}

.register-card {
    max-width: 440px;
}

/* 注册 / 老师注册 / 学生注册 三页共用：底部「已有账号？」一行 */
.login-link {
    text-align: center;
    margin-top: 16px;
    font-size: 14px;
    color: #909399;
}

.login-link a {
    color: #409EFF;
    text-decoration: none;
}

/* 注册页底部「老师注册 / 学生注册」两个入口：一行等分 */
.register-entry {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

.register-entry .el-button {
    flex: 1;
}

/* el-button + el-button 自带 margin-left:10px，不清掉会把两栏挤出容器 */
.register-entry .el-button + .el-button {
    margin-left: 0;
}

/* 注册页底部「我是老师 / 我是学生」互跳 */
.register-switch {
    text-align: center;
    margin-top: 10px;
    font-size: 13px;
    color: #909399;
}

.register-tip {
    color: #909399;
    font-size: 12px;
    margin-top: 4px;
}
