/* ===== 登录页样式 ===== */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
    background:#0b2a44;color:#0f172a;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
}

.auth-wrap{min-height:100vh;display:flex;position:relative;background:#0b2a44 url('../../bg5.jpg') center/cover no-repeat}
.auth-wrap::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(5,28,48,.9),rgba(5,28,48,.45) 55%,rgba(5,28,48,.32));z-index:0;pointer-events:none}

/* 表单区 */
.auth-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:32px;position:relative;z-index:1}
.auth-card{
    width:400px;max-width:100%;background:#fff;border-radius:16px;padding:44px 42px;
    box-shadow:0 24px 60px rgba(2,44,86,.08);border:1px solid #e8f1f8;
    animation:authIn .5s cubic-bezier(.22,1,.36,1) both;position:relative;overflow:hidden;
}
.auth-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#38bdf8,#0ea5e9,#38bdf8)}
@keyframes authIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.auth-card h2{font-size:24px;font-weight:700;margin-bottom:6px;letter-spacing:.5px;text-wrap:balance}
.auth-card .sub{color:#7c8a99;font-size:13px;margin-bottom:26px;letter-spacing:.2px;line-height:1.6}
.auth-card form{display:flex;flex-direction:column;gap:14px}

.field{position:relative;display:block}
.field input{
    width:100%;padding:13px 14px 13px 42px;border:1px solid #dce9f4;border-radius:10px;font-size:14px;
    font-family:inherit;background:#fbfdff;transition:border-color .15s,box-shadow .15s,background .15s;
}
.field input.pwd{padding-right:44px}
.field input:focus{outline:none;border-color:#0ea5e9;background:#fff;box-shadow:0 0 0 3px rgba(14,165,233,.14)}
.field>svg{
    position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;
    stroke:#9db3c8;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;
    transition:stroke .18s;
}
.field:focus-within>svg{stroke:#0ea5e9}
.field .toggle{
    position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;margin:0;padding:0;
    background:none;border:none;border-radius:8px;cursor:pointer;color:#9db3c8;
    display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s;
}
.field .toggle:hover{color:#0ea5e9;background:#e0f2fe}
.field .toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.field .toggle .icon-eye-off{display:none}
.field .toggle.show .icon-eye{display:none}
.field .toggle.show .icon-eye-off{display:block}

.agree{display:flex;align-items:center;gap:8px;font-size:13px;color:#55606e;cursor:pointer;user-select:none}
.agree input{width:16px;height:16px;margin:0;accent-color:#0ea5e9;cursor:pointer}

.disclaimer{margin-top:-4px;border:1px solid #e8f1f8;border-radius:8px;background:#fafdff;overflow:hidden}
.disclaimer summary{cursor:pointer;padding:10px 14px;font-size:12px;color:#7c8a99;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}
.disclaimer summary::-webkit-details-marker{display:none}
.disclaimer summary::before{content:"▸";transition:transform .15s;font-size:11px}
.disclaimer[open] summary::before{transform:rotate(90deg)}
.disclaimer-body{padding:2px 14px 12px;font-size:12px;line-height:1.8;color:#6f7d8c}

.auth-card button[type=submit]{
    width:100%;padding:13px;background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#fff;border:none;border-radius:10px;
    font-size:15px;font-weight:700;cursor:pointer;letter-spacing:4px;position:relative;overflow:hidden;
    transition:transform .15s;
}
.auth-card button[type=submit]:hover{transform:translateY(-1px)}
.auth-card button[type=submit]::after{content:"";position:absolute;top:0;left:-130%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .45s}
.auth-card button[type=submit]:hover::after{left:130%}
.auth-card button[type=submit]:disabled{opacity:.55;cursor:not-allowed;transform:none}

.alert{padding:11px 14px;border-radius:9px;margin-bottom:16px;font-size:13px;text-align:center;border:1px solid transparent}
.alert-success{background:#ecfdf5;color:#059669;border-color:#a7f3d0}
.alert-error{background:#fef2f2;color:#dc2626;border-color:#fecaca}

@media (max-width:900px){
    .auth-panel{padding:20px 16px 32px}
}
@media (max-width:480px){
    .auth-card{padding:26px 18px;border-radius:14px}
    .auth-card h2{font-size:20px}
    .field input{font-size:16px;padding:14px 14px 14px 42px}
    .field input.pwd{padding-right:48px}
    .field .toggle{width:40px;height:40px}
    .auth-card button[type=submit]{padding:14px}
}

@media (prefers-reduced-motion:reduce){
    .auth-card,.auth-card button[type=submit]::after{animation:none;transition:none}
}