@import url("common.css?v=1");

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
    background:
        radial-gradient(1000px 600px at 10% -10%, rgba(26,115,232,.14), transparent 60%),
        radial-gradient(900px 700px at 110% 110%, rgba(13,122,95,.12), transparent 60%),
        linear-gradient(180deg,#eef2ff 0%,#f8fafc 100%);
    padding:20px;
}
.login-card{
    width:420px;max-width:100%;background:#fff;border-radius:20px;padding:44px 40px 32px;
    box-shadow:0 20px 60px rgba(15,23,42,.08);position:relative;
}
.login-brand{text-align:center;margin-bottom:30px;}
.brand-logo{
    width:56px;height:56px;margin:0 auto 14px;border-radius:16px;
    background:linear-gradient(135deg,#1a73e8 0%,#1557b0 100%);
    position:relative;
    box-shadow:0 8px 20px rgba(26,115,232,.3);
}
.brand-logo::before{
    content:"";position:absolute;top:14px;left:16px;width:24px;height:14px;border:3px solid #fff;border-top:0;border-radius:0 0 14px 14px;
}
.brand-title{font-size:24px;font-weight:800;letter-spacing:.5px;}
.brand-title span{
    background:linear-gradient(135deg,#1a73e8,#0d7a5f);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.brand-sub{color:#64748b;font-size:13px;margin-top:4px;}

.login-form{margin-top:10px;}
.form-group{margin-bottom:18px;}
.form-group > label{display:block;font-size:13px;font-weight:500;color:#475569;margin-bottom:8px;}
.input-wrap{
    position:relative;display:flex;align-items:center;
    border:1px solid #e2e8f0;border-radius:12px;background:#fff;
    transition:all .15s;
}
.input-wrap:focus-within{border-color:#1a73e8;box-shadow:0 0 0 4px rgba(26,115,232,.1);}
.input-wrap input{
    flex:1;height:48px;padding:0 16px 0 44px;border-radius:12px;background:transparent;font-size:14px;
}
.input-icon{
    position:absolute;left:14px;top:50%;transform:translateY(-50%);
    width:20px;height:20px;opacity:.55;background-repeat:no-repeat;background-position:center;background-size:20px;
}
.icon-user{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E");}
.icon-lock{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E");}

.btn-login{
    width:100%;height:50px;margin-top:6px;border-radius:12px;
    background:linear-gradient(135deg,#1a73e8 0%,#1557b0 100%);
    color:#fff;font-weight:600;font-size:15px;border:none;position:relative;overflow:hidden;
    box-shadow:0 6px 16px rgba(26,115,232,.28);transition:all .18s;
}
.btn-login:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(26,115,232,.32);}
.btn-login.disabled{opacity:.65;cursor:not-allowed;transform:none;}
.btn-loading{
    width:20px;height:20px;border:2px solid rgba(255,255,255,.3);
    border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

.alert{
    padding:10px 14px;border-radius:10px;font-size:13px;margin-bottom:18px;
}
.alert.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;}

.login-footer{margin-top:22px;padding-top:18px;border-top:1px solid #f1f5f9;text-align:center;}
.lang-switch{
    display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:13px;
    transition:color .15s;
}
.lang-switch:hover{color:#1a73e8;}
.icon-lang{
    width:16px;height:16px;display:inline-block;opacity:.8;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='2' y1='12' x2='22' y2='12'%3E%3C/line%3E%3Cpath d='M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'%3E%3C/path%3E%3C/svg%3E") no-repeat center/contain;
}
