@import url('/static/css/shadox-brand.css?__asset_version=2416a544ab4802997cc1');
@import url('/static/vendor/css/fonts.css?__asset_version=a7435bae30911dd01fd5');
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;color:#17191d;background:#fafafa;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}
.login-shell{min-height:100svh;position:relative;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 22%,#fff 0,transparent 55%),#fafafa}
.auth-brand{display:flex;justify-content:space-between;align-items:center;padding:28px 40px;gap:24px}.auth-brand a{text-decoration:none;color:#17191d;font-size:15px;font-weight:650;display:flex;align-items:center;gap:10px}.auth-brand a>span{font-size:34px;font-weight:500;line-height:24px}.auth-brand-caption{font-size:12px;color:#91949b;letter-spacing:.08em}
.form-panel{flex:1;display:flex;flex-direction:column;align-items:center;padding:20px 24px 0}.form-content{width:100%;max-width:380px;margin:auto;padding:16px 0 40px}.welcome-icon{width:150px;height:88px;margin:0 auto 24px;filter:drop-shadow(0 10px 10px #11131818)}.welcome-icon svg{width:100%;height:100%}h2{font-size:32px;line-height:1.25;letter-spacing:-1px;font-weight:600;margin:0;text-align:center}.subtitle{text-align:center;color:#82858d;font-size:14px;line-height:1.7;margin:13px 0 32px}
form>label,.password-label label,#activation-wrap>label,#confirm-wrap>label{display:block;font-size:13px;color:#40434a;margin:19px 0 9px;font-weight:500}.input-wrap{position:relative;display:flex;align-items:center;border:1px solid #dedfe3;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}.input-wrap:focus-within{border-color:#7c828d;box-shadow:0 0 0 3px #2026310a}.input-wrap input{width:100%;min-width:0;border:0;outline:0;background:transparent;height:50px;padding:0 15px;font-size:14px;color:#17191d;border-radius:12px}.input-wrap input::placeholder{color:#a0a3aa}.input-wrap:has(#toggle-password) input{padding-right:60px}#toggle-password{position:absolute;right:10px;border:0;background:none;color:#747880;font-size:12px;padding:8px}.password-label{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.password-label label{margin:0 0 9px}.text-button{border:0;background:none;padding:0;color:#71757d;font-size:12px;line-height:1.7}.text-button:hover{color:#17191d;text-decoration:underline}.password-label .text-button{margin-bottom:9px}.remember{display:flex;align-items:center;gap:8px!important;font-size:12px!important;color:#747880!important;font-weight:400!important;margin:17px 0 22px!important}.remember input{accent-color:#17191d;width:14px;height:14px;margin:0}
.submit-button{display:flex;align-items:center;justify-content:center;width:100%;height:50px;border:1px solid #17191d;border-radius:12px;background:#17191d;color:white;font-size:14px;font-weight:550;transition:background .15s}.submit-button:hover{background:#30333a}.submit-button:active{background:#08090b}#activation-button{display:block;margin:18px auto 0}.workspace-note{margin-top:28px;border-top:1px solid #e8e9ec;padding-top:20px;text-align:center}.workspace-note>span{display:none}.workspace-note p{margin:0;color:#91949b;font-size:12px;line-height:1.8}.workspace-note small{display:block;font-size:11px;color:#a0a3aa;margin-top:3px}.panel-footer{padding:24px 0;color:#a0a3aa;text-align:center;font-size:11px}.message,.help-message{padding:12px 14px;border:1px solid #efdadd;background:#fff5f5;color:#a4454d;font-size:12px;line-height:1.7;border-radius:10px;margin:14px 0}.help-message{color:#646872;border-color:#e2e4e8;background:#f2f3f5}#retry-button{display:block;margin:14px auto}button:focus-visible,a:focus-visible{outline:2px solid #737c8c;outline-offset:4px}
.form-content{animation:auth-appear 240ms ease-out}@keyframes auth-appear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.auth-brand{padding:24px}.auth-brand-caption{display:none}.form-panel{padding-top:12px}.form-content{padding-top:0}.welcome-icon{width:128px;height:72px;margin-bottom:22px}h2{font-size:28px}.panel-footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Full-viewport particle stage; foreground remains independently scrollable. */
:root{color-scheme:dark;color:#f4f5f7;background:#0d1016}
.login-shell{isolation:isolate;background:#0d1016;overflow:hidden}
.welcome-icon{position:fixed;inset:0;width:100%;height:100svh;max-width:none;margin:0;overflow:hidden;filter:none;pointer-events:none;z-index:-2}
.welcome-icon>svg{position:absolute;width:74vw;height:auto;left:0;top:50%;transform:translateY(-50%);filter:brightness(2);opacity:.4}
.welcome-icon canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 650ms ease-out}
.welcome-icon.infinity-ready canvas{opacity:1}.welcome-icon.infinity-ready>svg{visibility:hidden}
/* Fade the artwork itself so the solid page background is never color-blended. */
.welcome-icon{-webkit-mask-image:linear-gradient(90deg,#000 30%,#000000bf 48%,#00000013 74%,transparent 100%);mask-image:linear-gradient(90deg,#000 30%,#000000bf 48%,#00000013 74%,transparent 100%)}
.auth-brand{padding:32px 4vw}.auth-brand a{color:#f2f3f5}.auth-brand-caption{color:#939aa7}
.form-panel{align-items:flex-end;padding:24px max(5vw,24px) 0;justify-content:center}
.form-content{max-width:360px;margin:auto 0;padding:32px 0}.form-content h2,.subtitle{text-align:left}
h2{font-size:34px;letter-spacing:-.06em}.subtitle{color:#a0a8b6;margin-bottom:36px}
form>label,.password-label label,#activation-wrap>label,#confirm-wrap>label{color:#d6dae2}
.input-wrap{background:#ffffff06;border-color:#ffffff26}.input-wrap:focus-within{border-color:#9aa9bf;box-shadow:0 0 0 3px #ffffff09}.input-wrap input{color:#f1f4fa}.input-wrap input::placeholder{color:#7f899b}
#toggle-password,.text-button{color:#a8b1bf}.text-button:hover{color:#fff}.remember{color:#a8b1bf!important}.remember input{accent-color:#e9edf4}
.submit-button{background:#edf0f5;color:#11151d;border-color:#edf0f5}.submit-button:hover{background:#fff}.submit-button:active{background:#cbd2df}
.workspace-note{border-color:#ffffff14;text-align:left}.workspace-note p{color:#a0a8b6}.workspace-note small{color:#818b9c}
.panel-footer{width:360px;max-width:100%;text-align:left;color:#818b9c}.help-message{color:#c4ccd9;background:#1b222d;border-color:#384252}
@media(min-width:1500px){.form-panel{padding-right:9vw}.form-content{max-width:380px}.panel-footer{width:380px}}
@media(max-width:760px){.auth-brand{padding:24px}.welcome-icon>svg{width:95vw;top:23%;left:2.5vw}.welcome-icon{-webkit-mask-image:linear-gradient(180deg,#000 12%,#000000df 27%,#00000014 43%,transparent 65%);mask-image:linear-gradient(180deg,#000 12%,#000000df 27%,#00000014 43%,transparent 65%)}.form-panel{align-items:center;padding:29svh 24px 0}.form-content{max-width:380px;margin:0 auto;padding:20px 0 28px}.form-content h2{font-size:30px}.subtitle{margin-bottom:26px}.panel-footer{width:380px;padding:18px 0}.auth-brand-caption{display:none}}

/* Quiet inline feedback, with room for two lines before the primary action. */
.remember{margin-bottom:8px!important}
.message-slot{min-height:48px;padding-bottom:8px}
.message-slot .message{display:flex;align-items:flex-start;gap:8px;margin:0;padding:0;border:0;border-radius:0;background:none;color:#e3a1a7;font-size:12px;line-height:20px;overflow-wrap:anywhere;animation:feedback-appear 160ms ease-out}
.message-slot .message::before{content:'';flex:0 0 16px;width:16px;height:16px;margin-top:2px;background:currentColor;opacity:.8;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='7.25' stroke='black' stroke-width='1.25'/%3E%3Cpath d='M10 5.8v4.8' stroke='black' stroke-width='1.25' stroke-linecap='round'/%3E%3Ccircle cx='10' cy='13.4' r='.7' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes feedback-appear{from{opacity:0}to{opacity:1}}

/* Shared fine-line controls and feedback rhythm. */
.remember{gap:10px!important;min-height:20px;line-height:20px;font-size:12px!important;color:#9da6b5!important;cursor:pointer;width:fit-content}
.remember input{appearance:none;-webkit-appearance:none;display:grid;place-content:center;flex:0 0 16px;width:16px;height:16px;border:1px solid #ffffff38;border-radius:4px;background:#ffffff04;cursor:pointer;transition:background 160ms ease,border-color 160ms ease}
.remember input::after{content:'';width:8px;height:5px;border-left:1.5px solid #d6dce6;border-bottom:1.5px solid #d6dce6;transform:translateY(-1px) rotate(-45deg);opacity:0}
.remember input:checked{background:#ffffff10;border-color:#919aa9}.remember input:checked::after{opacity:1}
.remember:hover input{border-color:#b0b8c5}.remember input:focus-visible{outline:2px solid #a4b4ce;outline-offset:3px}
.message-slot .message{gap:10px;color:#cc969e;font-weight:400;letter-spacing:.01em}
@media(forced-colors:active){.remember input{appearance:auto;-webkit-appearance:auto}.remember input::after{display:none}}

.auth-brand .shadox-wordmark{font-size:25px;font-weight:600}
.form-content h2 .shadox-display{font-size:1.35em;line-height:1}
.icp-footer{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;padding:12px 24px 20px;color:#818b9c;font-size:12px;line-height:1.8;text-align:center}
.icp-footer a{color:inherit;text-decoration:none}.icp-footer a:hover{color:#c4ccd9;text-decoration:underline}
