:root{font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:#17395f;background:#061d42;font-synthesis:none;--primary:#2463c5;--muted:#586b82;--error:#b42336}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #4783d7;outline-offset:4px}button:disabled{cursor:wait}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.login-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(420px,1fr);min-height:100svh}.biology{position:relative;isolation:isolate;min-height:760px;overflow:hidden;padding:40px 5%;color:#fff;background:#061d42;display:flex;flex-direction:column}.biology-art{position:absolute;z-index:-3;inset:-15px;background:url('/login-hero.webp') 58% 58%/cover no-repeat;animation:cell-drift 12s ease-in-out infinite alternate}.biology-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#061b3d55,transparent 75%),linear-gradient(0deg,#041b3ed9,transparent 25%,transparent 65%,#041b3d33)}
.brand{display:flex;gap:16px;align-items:center;font-size:30px;font-weight:650;line-height:1.25;letter-spacing:1px}.brand-mark{display:grid;place-items:center;flex-shrink:0;width:60px;height:60px;border-radius:10px;background:linear-gradient(145deg,#0675f5,#135bc3);box-shadow:inset 0 0 0 1px #65b7ff66;font-size:48px;font-weight:600;line-height:1}.brand small{display:block;font-size:13px;letter-spacing:.4px;margin-top:7px;font-weight:500}.hero-copy{margin-top:64px;max-width:660px}.eyebrow{color:#49e8f8;font-size:22px;letter-spacing:2px;font-weight:550;margin:0 0 22px}h1{font-size:clamp(37px,3.35vw,62px);line-height:1.35;letter-spacing:1px;margin:0;font-weight:650;text-shadow:0 3px 20px #04245555}.hero-description{font-size:20px;line-height:1.6;color:#a3dcf6;margin:20px 0 0;letter-spacing:1px}.workflow{display:flex;align-items:center;gap:0;list-style:none;padding:0;margin:auto 0 0;padding-top:260px;font-size:17px;font-weight:500}.workflow li{display:flex;align-items:center;gap:12px;white-space:nowrap}.workflow li:not(:last-child){flex:1}.workflow li:not(:last-child)::after{content:"";display:block;width:26px;height:1px;background:#aad8ffb3;margin:0 auto}.workflow svg{width:29px;height:29px}.hero-footer{font-size:14px;letter-spacing:.4px;margin:56px 0 0;color:#d6e9fa}.light-particles{position:absolute;inset:0;pointer-events:none;z-index:-1}.light-particles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#a3f6ff;box-shadow:0 0 14px 4px #44d3ff66;animation:particle-glow 6s ease-in-out infinite}.light-particles i:nth-child(1){left:41%;top:42%}.light-particles i:nth-child(2){left:87%;top:32%;animation-delay:-1s}.light-particles i:nth-child(3){left:28%;top:65%;animation-delay:-3s}.light-particles i:nth-child(4){left:69%;top:81%;animation-delay:-2s}.light-particles i:nth-child(5){left:54%;top:29%;animation-delay:-4s}.light-particles i:nth-child(6){left:90%;top:67%;animation-delay:-5s}
.login-panel{background:linear-gradient(145deg,#fbfdff,#f5f9ff);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:64px 12%;position:relative;min-width:0}.login-content{width:100%;max-width:440px;animation:form-arrive .35s ease-out both}.product-name{font-size:17px;font-weight:600;color:#205eb5;margin:0 0 22px}.login-content h2{font-size:clamp(38px,3vw,52px);line-height:1.25;color:#10294a;margin:0 0 14px;letter-spacing:1px}.welcome{font-size:17px;line-height:1.6;color:#5d6b7f;margin:0 0 32px}.field{margin:0 0 3px}.field>label{font-size:16px;font-weight:600;display:block;margin:0 0 10px}.input-wrap{display:flex;align-items:center;position:relative;border:1px solid #acbfdc;border-radius:8px;background:#ffffffb3;transition:box-shadow .18s,border-color .18s}.input-wrap>svg{width:23px;height:23px;color:#64758d;margin-left:16px}.input-wrap:focus-within{border-color:#3575cf;box-shadow:0 0 0 3px #2463c517}.input-wrap:has([aria-invalid=true]){border-color:var(--error)}.input-wrap input{width:100%;min-width:0;height:54px;padding:13px 12px;border:0;border-radius:8px;background:transparent;font-size:16px;color:#213e60;outline:none}.input-wrap input::placeholder{color:#77869b}.input-wrap:has(input:focus-visible){outline:2px solid #4783d7;outline-offset:3px}.input-wrap input:focus-visible{outline:none}.password-toggle{display:grid;place-items:center;flex-shrink:0;width:44px;height:48px;color:#64758d;background:transparent;border:0;border-radius:6px;margin-right:4px}.password-toggle:hover{color:var(--primary);background:#edf4ff}.password-toggle svg{width:22px;height:22px}.eye-slash{display:none}.password-toggle[aria-pressed=true] .eye-slash{display:block}.field-error{min-height:22px;margin:4px 0 0;font-size:12px;line-height:18px;color:var(--error)}.remember{display:flex;align-items:center;gap:10px;min-height:44px;width:max-content;cursor:pointer;color:#4b617e;font-size:15px}.remember input{appearance:auto;accent-color:var(--primary);width:18px;height:18px;margin:0}.login-error{min-height:48px;line-height:20px;font-size:13px;color:var(--error);padding:6px 0 2px;outline:none}.login-error:focus-visible{outline:2px solid #b42336;outline-offset:3px;border-radius:4px}.login-button{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:54px;border:0;border-radius:8px;background:linear-gradient(100deg,#1262cc,#1958b4);color:#fff;font-size:18px;font-weight:600;box-shadow:0 5px 12px #245d9c12;transition:background .18s,box-shadow .18s,transform .18s}.login-button:hover:not(:disabled){background:#164fa5;box-shadow:0 7px 20px #1c5cb329}.login-button:active:not(:disabled){transform:translateY(1px)}.button-arrow{width:23px;height:23px}.login-button:disabled{opacity:.82}.spinner{display:none;width:19px;height:19px;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.login-button[aria-busy=true] .spinner{display:block}.login-button[aria-busy=true] .button-arrow{display:none}.demo-credentials{text-align:center;color:var(--muted);font-size:14px;line-height:1.6;margin:18px 0 0;display:grid;gap:5px}.demo-credentials p{margin:0}.demo-credentials span{color:#17395f;font-family:Consolas,"SFMono-Regular",monospace;overflow-wrap:anywhere;user-select:all}.panel-footer{position:absolute;bottom:42px;left:24px;right:24px;text-align:center;color:#6a788b;font-size:14px;margin:0;line-height:1.6}
@keyframes cell-drift{from{transform:translate3d(0,0,0) scale(1.015)}to{transform:translate3d(-5px,-8px,0) scale(1.035)}}@keyframes particle-glow{0%,100%{opacity:.2;transform:translateY(3px)}50%{opacity:.9;transform:translateY(-5px)}}@keyframes form-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}html[data-hidden=true] .biology-art,html[data-hidden=true] .light-particles i{animation-play-state:paused}
@media(min-width:1700px){.biology{padding:48px 5%}.hero-copy{margin-top:82px}.workflow{padding-top:310px;font-size:20px}.workflow svg{width:33px;height:33px}.login-panel{padding-inline:14%}.product-name{font-size:20px}.welcome{font-size:19px}.hero-footer{margin-top:68px}}
@media(max-width:1200px){.login-layout{grid-template-columns:minmax(0,1.2fr) minmax(400px,1fr)}.biology{padding:32px}.brand{font-size:26px}.brand-mark{width:52px;height:52px;font-size:42px}.brand small{font-size:10px}.hero-copy{margin-top:64px}.eyebrow{font-size:18px}h1{font-size:38px}.hero-description{font-size:16px}.workflow{font-size:13px;gap:15px;flex-wrap:wrap}.workflow li{gap:7px}.workflow li:not(:last-child){flex:initial}.workflow li:not(:last-child)::after{display:none}.workflow svg{width:22px;height:22px}.login-panel{padding:56px 42px}}
@media(max-width:800px){.login-layout{display:block}.biology{min-height:240px;height:240px;padding:25px 28px}.biology-art{background-position:75% 55%;background-size:cover}.biology-shade{background:linear-gradient(90deg,#061b3de6 5%,#061b3d66 65%,transparent)}.brand{font-size:23px;gap:11px}.brand-mark{width:42px;height:44px;font-size:36px}.brand small{font-size:9px;margin-top:5px}.hero-copy{margin-top:24px}.eyebrow{font-size:12px;letter-spacing:1px;margin-bottom:10px}h1{font-size:24px;line-height:1.35}h1 br{display:none}.hero-description{font-size:13px;margin:10px 0 0;letter-spacing:0}.workflow,.hero-footer{display:none}.login-panel{min-height:calc(100svh - 240px);padding:35px 28px calc(28px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;margin-top:-16px;align-items:center}.login-content{max-width:440px}.product-name{font-size:13px;margin-bottom:12px}.login-content h2{font-size:32px;margin-bottom:9px}.welcome{font-size:14px;margin-bottom:24px}.panel-footer{position:static;margin-top:30px;font-size:12px}.input-wrap input{height:52px}.login-error{min-height:44px}.light-particles i:nth-child(n+3){display:none}}
@media(max-width:360px){.biology{padding:23px 20px;height:220px;min-height:220px}.brand{font-size:21px}h1{font-size:21px}.hero-description{font-size:12px}.login-panel{padding:29px 20px calc(24px + env(safe-area-inset-bottom));min-height:calc(100svh - 220px)}.welcome{font-size:13px}.input-wrap input{font-size:16px}.demo-credentials{font-size:13px}}
@media(min-width:801px) and (max-height:820px){.hero-copy{margin-top:48px}.workflow{padding-top:220px}.hero-footer{margin-top:36px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.login-content{opacity:1;transform:none}}
