/* ============================================================
   飞墨问道 · 登录/注册页 · 高级感深色玻璃拟态设计
   ============================================================ */
body {
    margin: 0;
    background: #0d0a26;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;
}

/* ---------- 背景舞台：深紫渐变 + 漂浮光斑 ---------- */
.auth-stage {
    position: fixed;
    inset: 0;
    overflow: hidden;
    background:
        radial-gradient(1100px 750px at 12% 8%, #2b1b6e 0%, transparent 55%),
        radial-gradient(950px 700px at 88% 12%, #3b1d6e 0%, transparent 52%),
        radial-gradient(900px 900px at 50% 105%, #1c1249 0%, transparent 62%),
        #0d0a26;
}
.orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(95px);
    opacity: .5;
    animation: orb-float 18s ease-in-out infinite alternate;
}
.orb-a {
    width: 480px; height: 480px;
    background: linear-gradient(135deg, #7c3aed, #4f46e5);
    top: -150px; left: -130px;
}
.orb-b {
    width: 430px; height: 430px;
    background: linear-gradient(135deg, #db2777, #9333ea);
    top: 28%; right: -150px;
    animation-delay: -6s;
    animation-duration: 22s;
}
.orb-c {
    width: 540px; height: 540px;
    background: linear-gradient(135deg, #0ea5e9, #6366f1);
    bottom: -200px; left: 28%;
    opacity: .38;
    animation-delay: -12s;
    animation-duration: 26s;
}
@keyframes orb-float {
    from { transform: translate(0, 0) scale(1); }
    to   { transform: translate(70px, 50px) scale(1.16); }
}

/* ---------- 玻璃卡片 ---------- */
.auth-page {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    box-sizing: border-box;
}
.auth-card {
    position: relative;
    width: 440px;
    max-width: 100%;
    border-radius: 24px;
    padding: 38px 38px 28px;
    background: rgba(255, 255, 255, .055);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 34px 90px rgba(0, 0, 0, .5);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    overflow: hidden;
}
.auth-card::before {
    content: "";
    position: absolute;
    top: 0; left: 10%; right: 10%;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .9), transparent);
}
.auth-card::after {
    content: "";
    position: absolute;
    top: -70px; right: -70px;
    width: 220px; height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(167, 139, 250, .16), transparent 70%);
    pointer-events: none;
}

.auth-head { text-align: center; position: relative; z-index: 1; }
.auth-head-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.auth-head-logo img {
    width: 46px; height: 46px;
    border-radius: 12px;
    object-fit: cover;
    /* 深色徽标转白色剪影，适配深色背景 */
    filter: brightness(0) invert(1) drop-shadow(0 4px 14px rgba(139, 92, 246, .65));
}
.auth-logo-fallback {
    width: 46px; height: 46px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px; font-weight: 800;
    color: #fff;
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
    box-shadow: 0 6px 16px rgba(124, 58, 237, .5);
}
.auth-head-name { font-size: 19px; font-weight: 800; color: #fff; letter-spacing: 2px; }
.auth-title {
    margin-top: 22px;
    font-size: 27px;
    font-weight: 800;
    letter-spacing: 1px;
    background: linear-gradient(90deg, #ffffff, #c4b5fd);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.auth-sub { margin-top: 9px; font-size: 13px; color: rgba(255, 255, 255, .55); }

/* ---------- 表单 ---------- */
.auth-form { margin-top: 26px; position: relative; z-index: 1; }
.auth-form .layui-form-item { margin-bottom: 16px; }
.auth-form .layui-input-wrap {
    border: 1px solid rgba(255, 255, 255, .14) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .06) !important;
    transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.auth-form .layui-input-wrap:focus-within {
    border-color: rgba(167, 139, 250, .75) !important;
    background: rgba(255, 255, 255, .09) !important;
    box-shadow: 0 0 0 4px rgba(139, 92, 246, .16), 0 0 26px rgba(139, 92, 246, .22);
}
.auth-form .layui-input {
    height: 48px;
    background: transparent !important;
    border: none !important;
    color: #fff;
    font-size: 14px;
}
.auth-form .layui-input::placeholder { color: rgba(255, 255, 255, .32); }
.auth-form .layui-input-prefix .layui-icon,
.auth-form .layui-input-prefix .iconfont { color: rgba(196, 181, 253, .78); }
.auth-form .captcha { border-radius: 0 14px 14px 0; }

.auth-form button.auth-btn {
    display: block;
    width: 100%;
    height: 50px;
    border: none;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 3px;
    color: #fff;
    cursor: pointer;
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
    box-shadow: 0 10px 30px rgba(124, 58, 237, .45), inset 0 1px 0 rgba(255, 255, 255, .25);
    transition: transform .2s ease, box-shadow .2s ease;
}
.auth-form button.auth-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 42px rgba(124, 58, 237, .6), inset 0 1px 0 rgba(255, 255, 255, .25);
    color: #fff;
}

.auth-link { color: #a78bfa; }
.auth-link:hover { color: #c4b5fd; }
.auth-form .layui-form-item .layui-link,
.auth-form .layui-form-item a.lay-user-jump-change,
.auth-form a.lay-user-jump-change { color: rgba(255, 255, 255, .55); }
.auth-form a.lay-user-jump-change:hover { color: #c4b5fd; }
.auth-form .layui-form-checkbox span,
.auth-form label { color: rgba(255, 255, 255, .55); font-size: 13px; }

/* 注册页标签（胶囊分段控件） */
.reg-tab-pane { display: none; }
.reg-tab-pane.active { display: block; }
.auth-form .reg-tab-title {
    display: flex;
    margin: 0 0 20px;
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    background: rgba(255, 255, 255, .05);
}
.auth-form .reg-tab-title li {
    flex: 1;
    text-align: center;
    padding: 9px 0;
    border-radius: 999px;
    margin: 0;
    border-bottom: none;
    color: rgba(255, 255, 255, .55);
    font-size: 14px;
    cursor: pointer;
    transition: all .25s ease;
}
.auth-form .reg-tab-title li.active {
    color: #fff;
    font-weight: 700;
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
    box-shadow: 0 6px 18px rgba(124, 58, 237, .4);
}

/* 勾选协议 */
.auth-form .agree-label { color: rgba(255, 255, 255, .6); font-size: 13px; }
.auth-form .agree-label a { color: #a78bfa; }
.auth-form input[name="agreement"] { accent-color: #8b5cf6; }

/* 微信扫码 */
.auth-form .wx-login-box { text-align: center; padding: 10px 0 4px; }
.auth-form .wx-login-box .wx-icon { font-size: 50px; color: #07c160; line-height: 1; }
.auth-form .wx-login-box .wx-btn {
    display: inline-block;
    margin-top: 14px;
    padding: 11px 40px;
    background: #07c160;
    color: #fff;
    border-radius: 999px;
    font-size: 15px;
    box-shadow: 0 8px 22px rgba(7, 193, 96, .35);
}
.auth-form .wx-login-box .wx-btn:hover { opacity: .88; color: #fff; }
.auth-form .wx-login-box .wx-tip { margin-top: 12px; color: rgba(255, 255, 255, .4); font-size: 12px; line-height: 1.8; }

/* 卡片底部特色点 */
.auth-feats {
    margin-top: 22px;
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}
.auth-feat-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .75);
    font-size: 12px;
}
.auth-feat-chip .iconfont { color: #a78bfa; }
.auth-copy {
    margin-top: 20px;
    text-align: center;
    color: rgba(255, 255, 255, .35);
    font-size: 12px;
    position: relative;
    z-index: 1;
}
.auth-copy a { color: #a78bfa; }

/* ---------- 图形验证码（紧凑单行） ---------- */
.auth-form .captcha-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
}
.auth-form .captcha-row .layui-input-wrap { flex: 1; }
.auth-form .captcha-row .captcha {
    width: 118px;
    height: 48px;
    flex: none;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-sizing: border-box;
    object-fit: cover;
    cursor: pointer;
    background: #eef6fb;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.auth-form .captcha-row .captcha:hover {
    border-color: rgba(167, 139, 250, .7);
    box-shadow: 0 0 0 4px rgba(139, 92, 246, .14);
}

@media screen and (max-width: 480px) {
    .auth-card { padding: 30px 24px 22px; border-radius: 20px; }
    .auth-title { font-size: 23px; }
    .orb { opacity: .35; }
}
