﻿:root
{
    --brand-primary:#ef8035;
    --slate-100:#f1f5f9;
    --slate-200:#e2e8f0;
    --slate-400:#94a3b8
}
*
{
    margin:0;
    padding:0;
    box-sizing:border-box
}
body
{
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background-color:#0b0b0d;
    overflow:hidden;
    position:relative
}
.bg-glow-1
{
    position:absolute;
    top:-8%;
    left:-8%;
    width:25%;
    height:40%;
    background:rgba(239,128,53,0.1);
    border-radius:50%;
    filter:blur(72px);
    animation:pulse 4s infinite
}
.bg-glow-2
{
    position:absolute;
    right:-10%;
    bottom:-10%;
    width:36%;
    height:26%;
    background:rgba(37,99,235,0.2);
    border-radius:50%;
    filter:blur(120px);
    animation:pulse 4s infinite 0.7s
}
@keyframes pulse
{
    0%,100%
    {
        opacity:1
    }
    50%
    {
        opacity:0.6
    }
}
.container
{
    position:relative;
    z-index:10;
    width:100%;
    max-width:1024px;
    min-height:600px;
    margin:0 16px;
    border:1px solid #2d2d2d;
    border-radius:24px;
    background:linear-gradient(180deg,#1d1d1d 0%,#141414 100%);
    box-shadow:0 25px 50px -12px rgba(0,0,0,0.5);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    opacity:0;
    transform:translateY(20px);
    animation:fade-in-up 0.8s ease-out forwards
}
@media (min-width:768px)
{
    .container
    {
        flex-direction:row
    }
}
@keyframes fade-in-up
{
    to
    {
        opacity:1;
        transform:translateY(0)
    }
}
.sidebar
{
    width:100%;
    padding:48px;
    position:relative;
    display:flex;
    flex-direction:column;
    overflow:hidden
}
@media (min-width:768px)
{
    .sidebar
    {
        width:50%
    }
}
.tech-grid
{
    position:absolute;
    inset:0;
    opacity:0.02;
    background-image:radial-gradient(var(--brand-primary) 1px,transparent 1px);
    background-size:40px 40px;
    pointer-events:none
}
.logo-box
{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:40px
}
.logo-icon
{
    width:36px;
    height:36px;
}
.logo-icon img
{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius: 8px;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    &:hover {
        transform: scale(1.05);
        box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2);
    }
}
.logo-text
{
    color:#ffff00;
    font-size:20px;
    font-weight:700;
    letter-spacing:-0.025em
}
.main-title
{
    color:#ffffff;
    font-size:30px;
    font-weight:700;
    line-height:1.15;
    letter-spacing:-0.025em;
    margin-bottom:16px
}
.highlight
{
    color:#ffff00
}
.description
{
    color:#9aa6bc;
    font-family:"Microsoft YaHei","PingFang SC","Hiragino Sans GB","Heiti SC",sans-serif;
    font-size:14px;
    font-weight:400;
    line-height:1.7;
    max-width:280px
}
.illustration-container
{
    flex:1;
    margin-top:8px;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center
}
.illustration-mask
{
    position:relative;
    z-index:10;
    width:100%;
    max-width:560px;
    mask-image:radial-gradient(ellipse at center,black 10%,rgba(0,0,0,0.9) 30%,rgba(0,0,0,0.4) 65%,transparent 92%);
    -webkit-mask-image:radial-gradient(ellipse at center,black 10%,rgba(0,0,0,0.9) 30%,rgba(0,0,0,0.4) 65%,transparent 92%);
    opacity:0;
    transform:scale(0.94);
    animation:fade-in-scale 1.4s ease-out forwards
}
@keyframes fade-in-scale
{
    to
    {
        opacity:1;
        transform:scale(1)
    }
}
.illustration-img
{
    width:100%;
    height:auto;
    mix-blend-mode:multiply;
    opacity:0.95;
    filter:contrast(1.02)
}
.login-form-container
{
    width:100%;
    padding:40px;
    display:flex;
    flex-direction:column
}
@media (min-width:768px)
{
    .login-form-container
    {
        width:50%;
        border-left:1px solid #2d2d2d
    }
}
.form-header
{
    margin-bottom:30px;
    padding-top:4px;
    text-align:center
}
@media (min-width:768px)
{
    .form-header
    {
        text-align:left
    }
}
.form-title
{
    margin-bottom:8px;
    color:#ffffff;
    font-size:30px;
    font-weight:700
}
.form-subtitle
{
    color:#7a7f86;
    font-size:14px
}
.form-group
{
    margin-bottom:24px
}
.input-wrapper
{
    position:relative
}
.input-icon
{
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    padding-left:16px;
    display:flex;
    align-items:center;
    pointer-events:none
}
.form-group .icon
{
    width:33px;
    height:22px;
    display:inline-block
}
.form-group .icon-1
{
    background:url(../images/icon-login.png) no-repeat 1px 0
}
.form-group .icon-2
{
    background:url(../images/icon-login.png) no-repeat -54px 0
}
.form-group .icon-3
{
    background:url(../images/icon-login.png) no-repeat -106px 0
}
.form-group .icon-4
{
    position:absolute;
    right:0;
    cursor:pointer;
    background:url(../images/icon-login.png) no-repeat 0 -43px
}
.form-group .icon-5
{
    background:url(../images/icon-login.png) no-repeat -55px -43px
}
.input-field
{
    width:100%;
    display:block;
    padding:14px 16px 14px 44px;
    border:1px solid #333333;
    border-radius:12px;
    background:#1f1f1f;
    color:#888888;
    font-size:16px;
    outline:none;
    transition:all 0.2s
}
.input-field:focus
{
    border-color:#46463c;
    box-shadow:0 0 0 3px rgba(74,79,92,0.18);
    background:#23252a
}
.password-toggle
{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    padding-right:16px;
    border:none;
    background:none;
    cursor:pointer;
    display:flex;
    align-items:center
}
.captcha-row
{
    display:flex;
    align-items:center;
    gap:16px
}
.captcha-img-box
{
    width:160px;
    height:50px;
    border:1px solid var(--slate-200);
    border-radius:12px;
    background:var(--slate-100);
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center
}
.validateImg
{
    width:160px;
    height:50px;
    border-radius:12px;
    cursor:pointer
}
.login-btn
{
    width:100%;
    padding:16px;
    border:none;
    border-radius:12px;
    background:#ffff00;
    color:#000000;
    font-family:"Microsoft YaHei","PingFang SC","Hiragino Sans GB","Heiti SC",sans-serif;
    font-size:16px;
    font-weight:700;
    box-shadow:0 10px 20px -5px rgba(239,128,53,0.4);
    cursor:pointer;
    transition:all 0.2s;
    display:flex;
    align-items:center;
    justify-content:center
}
.login-btn:hover
{
    opacity:0.9;
    transform:translateY(-1px);
}
.footer
{
    margin-top:32px;
    text-align:center
}
.footer-text
{
    color:var(--slate-400);
    font-size:12px
}
.login-form-container .tip
{
    height:20px;
    line-height:20px;
    margin-bottom:20px
}
.login-form-container .tip .login-tip
{
    color:var(--slate-400);
    font-size:14px;
    font-weight:400;
    cursor:pointer
}
.tip .icon-nocheck
{
    width:10px;
    height:10px;
    margin:1px 5px 1px 1px;
    border:1px solid var(--slate-400);
    border-radius:2px;
    position:relative;
    top:2px;
    display:inline-block;
    cursor:pointer
}
.tip .icon-check
{
    width:14px;
    height:14px;
    margin:0 7px 0 0;
    border:1px solid var(--slate-400);
    border-radius:2px;
    background:transparent;
    position:relative
}
.tip .icon-check::after
{
    content:"";
    position:absolute;
    left:3px;
    top:0;
    width:4px;
    height:8px;
    border:solid #ffff00;
    border-width:0 2px 2px 0;
    transform:rotate(45deg)
}
.floating-1
{
    position:absolute;
    top:25%;
    right:40px;
    width:48px;
    height:48px;
    border-radius:8px;
    background:rgba(239,128,53,0.2);
    transform:rotate(12deg);
    animation:bounce 3s infinite;
    display:none
}
.floating-2
{
    position:absolute;
    bottom:120px;
    left:40px;
    width:48px;
    height:48px;
    border-radius:8px;
    background:rgba(239,128,53,0.2);
    opacity:0.45;
    transform:rotate(12deg);
    animation:bounce 3s infinite 0.4s, float-fade 4.2s ease-in-out infinite 0.2s;
    display:none
}
@media (min-width:1280px)
{
    .floating-1
    {
        display:block
    }
    .floating-2
    {
        display:block
    }
}
@keyframes bounce
{
    0%,100%
    {
        transform:translateY(0) rotate(12deg)
    }
    50%
    {
        transform:translateY(-10px) rotate(12deg)
    }
}
@keyframes float-fade
{
    0%,
    100%
    {
        opacity:0.32
    }
    50%
    {
        opacity:0.5
    }
}
svg
{
    display:block
}
.input-field::placeholder
{
    color:#555555;
    font-size:14px;
    font-weight:400
}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus
{
    -webkit-text-fill-color:#888888;
    -webkit-box-shadow:0 0 0 1000px #1f1f1f inset;
    transition:background-color 9999s ease-out 0s
}
