/* Brand-led split authentication layout; authentication remains in app.js. */
.login-workbench { --muted:#7c879a; --line:#e1e6ee; --wine:#4263ec; --wine-dark:#3151d6; --wine-soft:#eef2ff; background:#f4f5f8; }
.login-workbench .login-shell { display:grid; align-items:center; padding:24px; background:#f4f5f8; }
.login-workbench .login-layout { width:min(1380px,100%); min-height:calc(100dvh - 48px); grid-template-columns:minmax(0,1fr) minmax(420px,1fr); border:1px solid #e8ebf1; border-radius:24px; box-shadow:0 12px 60px #26375406; background:#fff; }
.login-workbench .login-intro { min-height:0; margin:12px 0 0 12px; padding:32px 40px 24px; isolation:isolate; color:#202b47; background:#eff1f9; border-radius:16px; }
.login-workbench .login-intro::before,.login-workbench .login-intro::after { display:none; }
.login-workbench .login-brand { gap:10px; }
.login-workbench .login-brand img { width:36px; height:36px; box-sizing:border-box; padding:3px; object-fit:contain; background:transparent; border-radius:0; box-shadow:none; mix-blend-mode:normal; }
.login-workbench .login-brand strong { font-size:20px; font-weight:650; letter-spacing:.3px; color:#253253; }
.login-workbench .login-brand strong span { font-size:14px; font-weight:500; color:#657492; }
.login-workbench .login-brand em { margin-top:3px; font-size:10px; letter-spacing:1px; color:#7c879e; opacity:1; }
.login-workbench .login-intro-copy { margin:40px 0 0; position:relative; z-index:1; }
.login-workbench .login-eyebrow { margin:0 0 14px; font-size:11px; letter-spacing:1.6px; color:#737f98; }
.login-workbench .login-intro-copy h1 { margin:0; font-size:clamp(32px,3vw,43px); line-height:1.4; font-weight:650; letter-spacing:-1.5px; color:#222e4c; }
.login-title-accent { color:#4864d9; }
.login-workbench .login-intro-copy > p:last-child { margin:14px 0 0; font-size:13px; color:#7c879e; line-height:1.8; }
.login-brand-art { position:relative; flex:1; min-height:190px; display:grid; place-items:center; margin:0 -24px; pointer-events:none; }
.login-brand-art img { position:absolute; display:block; width:auto; height:100%; max-width:100%; max-height:400px; object-fit:contain; mix-blend-mode:multiply; mask-image:radial-gradient(ellipse 67% 67% at 50% 50%,#000 44%,transparent 76%); }
.login-workbench .login-intro footer { display:flex; align-items:center; justify-content:center; gap:20px; margin:0; padding:18px 0 0; border-top:1px solid #dce1ee; color:#7b86a1; font-size:11px; letter-spacing:1px; }
.login-capabilities i { width:3px; height:3px; border-radius:50%; background:#b2bbd2; }
.login-workbench .login-panel { padding:40px clamp(32px,5vw,76px) 24px; background:#fff; gap:0; }
.login-workbench .login-card { width:min(100%,384px); }
.login-workbench .login-card-heading h2 { font-size:28px; font-weight:650; line-height:1.35; letter-spacing:-.7px; color:#172644; }
.login-heading-caption { margin:7px 0 0; font-size:13px; color:#8995a8; line-height:1.65; }
.login-workbench .auth-tabs { position:relative; isolation:isolate; border:0; padding:4px; border-radius:11px; background:#f2f5fb; margin-top:24px; gap:0; }
.login-workbench .auth-tabs::before { content:''; position:absolute; z-index:-1; left:4px; top:4px; width:calc(50% - 4px); bottom:4px; border:1px solid #e5eaf5; border-radius:8px; background:#fff; box-shadow:0 2px 5px #24447308; transition:transform .32s cubic-bezier(.22,1,.36,1); }
.login-workbench .auth-tabs:has([data-auth-view="register"].active)::before { transform:translateX(100%); }
.login-workbench .auth-tabs button { min-height:35px; font-size:12px; font-weight:550; transition:color .2s; background:none; box-shadow:none; }
.login-workbench .auth-tabs button.active { color:#3e60df; background:none; box-shadow:none; }
.login-workbench .login-card .stack { margin-top:22px; gap:14px; }
.login-workbench .login-card label { font-size:13px; color:#4a5b76; gap:7px; font-weight:500; }
.login-workbench .login-card input:not([type="checkbox"]) { min-height:46px; border:1px solid #dfe6f1; border-radius:8px; background:#fff; font-size:13px; color:#253957; transition:border-color .2s,box-shadow .25s,background .2s; }
.login-workbench .login-card input:not([type="checkbox"]):hover { border-color:#b9c8e2; }
.login-workbench .login-card input:not([type="checkbox"]):focus { background:#fff; border-color:#728bfa; box-shadow:0 0 0 3px #4665f010; outline:0; }
.login-workbench .login-card input::placeholder { color:#9ba3b2; font-size:12px; }
.login-workbench .password-field button { font-size:11px; color:#7f90ad; border-radius:6px; }
.login-workbench .captcha-image-button { border:1px solid #dfe6f1; border-radius:8px; background:#f4f7fc; transition:border-color .2s,transform .2s; }
.login-workbench .captcha-image-button:hover { border-color:#8fa5e3; }
.login-workbench .captcha-image-button:active { transform:scale(.97); }
.login-workbench .email-code-field button,.login-workbench .register-invite-control button { border-radius:8px; font-weight:500; font-size:11px; min-height:45px; background:#f3f6ff; color:#4764c9; border-color:#e0e6f4; }
.login-workbench .login-remember { min-height:22px; padding:0; background:none; border:0; }
.login-workbench .login-remember-copy { font-size:12px; color:#728097; }
.login-workbench .login-legal-consent { margin-top:0; }
.login-workbench .login-legal-consent label { font-size:11px; color:#7c879a; line-height:1.7; }
.login-workbench .login-legal-consent a { color:#667fab; text-decoration:none; }
.login-workbench .login-legal-consent a:hover { color:#315ce0; text-decoration:underline; }
.login-workbench .login-card .login-submit { position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; justify-content:center; gap:14px; min-height:46px; border:0; border-radius:11px; background:linear-gradient(105deg,#3568f5,#5260ed); color:#fff; font-size:13px; font-weight:550; box-shadow:0 7px 18px #3d64e326; transition:transform .25s,box-shadow .25s,filter .25s; }
.login-workbench .login-submit::before { content:''; position:absolute; inset:-40% auto -40% -70%; width:55%; background:linear-gradient(90deg,transparent,#ffffff24,transparent); transform:skewX(-20deg); transition:left .65s cubic-bezier(.2,.75,.25,1); pointer-events:none; }
.login-workbench .login-submit:hover:not(:disabled) { transform:translateY(-2px); filter:brightness(1.04); box-shadow:0 10px 24px #3d64e33b; }
.login-workbench .login-submit:hover::before { left:130%; }
.login-workbench .login-submit:active:not(:disabled) { transform:translateY(0) scale(.99); }
.login-workbench .login-submit:not(.is-loading)::after { content:'→'; font-size:17px; font-weight:400; transition:transform .25s; }
.login-workbench .login-submit:hover:not(.is-loading)::after { transform:translateX(3px); }
.login-workbench .login-submit:not(.is-loading) i { transition:transform .25s; }
.login-workbench .login-submit:hover:not(.is-loading) i { transform:translateX(3px); }
.login-workbench :is(button,a):focus-visible { outline:2px solid #778bf3; outline-offset:3px; }
.login-workbench .auth-secondary-actions { margin-top:10px; }
.login-workbench .auth-secondary-actions button { font-size:11px; color:#7184a5; }
.login-workbench .login-support { width:min(100%,384px); margin:20px 0 0; color:#97a2b4; font-size:11px; text-align:center; }
.login-workbench .login-support button { color:#6d82aa; font-size:10px; }
.login-workbench .site-legal-footer { margin:12px auto 0; }
.login-workbench .site-legal-footer a,.login-workbench .site-icp-footer a { font-size:10px; color:#97a3b7; }
.login-workbench .site-icp-footer { margin:2px auto 6px; }
.login-workbench .site-icp-footer a + a { border-color:#eef1f6; }

/* Only the petal texture deforms; the canvas and surrounding layout stay still. */
.login-petal-canvas { position:absolute; display:block; opacity:0; pointer-events:none; mix-blend-mode:multiply; mask-image:radial-gradient(ellipse 67% 67% at 50% 50%,#000 44%,transparent 76%); }
.login-brand-art.has-petal-motion .login-petal-canvas { opacity:1; }
.login-brand-art.has-petal-motion img { opacity:0; }
@keyframes login-reveal { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:none; } }
@keyframes login-art-reveal { from { opacity:0; transform:translateY(16px) scale(.97); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:no-preference) {
 .login-workbench .login-brand,.login-workbench .login-card-heading { animation:login-reveal .6s both; }
 .login-workbench .login-intro-copy { animation:login-reveal .75s .08s both; }
 .login-brand-art { animation:login-art-reveal 1s .12s both; }
 .login-workbench form:not(.hidden) { animation:login-reveal .3s both; }
}
@media(min-width:901px) and (max-height:800px) {
 .login-workbench .login-shell { padding:16px 24px; }
 .login-workbench .login-layout { min-height:calc(100dvh - 32px); }
 .login-workbench .login-intro { padding:26px 32px 20px; }
 .login-workbench .login-intro-copy { margin-top:28px; }
 .login-workbench .login-intro-copy h1 { font-size:34px; }
 .login-workbench .login-eyebrow { display:none; }
 .login-brand-art { min-height:160px; }
 .login-brand-art img { max-height:310px; }
 .login-workbench .login-panel { padding-block:24px 16px; }
 .login-workbench .login-card .stack { gap:11px; margin-top:18px; }
 .login-workbench .auth-tabs { margin-top:20px; }
 .login-workbench .login-support { margin-top:14px; }
}
@media(min-width:901px) and (max-width:1100px) {
 .login-workbench .login-layout { grid-template-columns:minmax(0,1fr) minmax(380px,1fr); }
 .login-workbench .login-panel { padding-inline:28px; }
 .login-workbench .login-intro { padding-inline:28px; }
 .login-workbench .login-intro-copy h1 { font-size:30px; }
 .login-workbench .login-intro footer { gap:12px; font-size:10px; }
}
@media(max-width:900px) {
 .login-workbench .login-shell { padding:24px; }
 .login-workbench .login-layout { width:min(500px,100%); min-height:calc(100dvh - 48px); grid-template-columns:minmax(0,1fr); border-radius:20px; }
 .login-workbench .login-intro { display:none; }
 .login-workbench .login-panel { padding:34px 36px 22px; }
 .login-workbench .login-mobile-logo { display:flex; align-items:center; gap:9px; margin-bottom:28px; color:#2b3962; font-size:18px; font-weight:600; }
 .login-workbench .login-mobile-logo img { width:32px; height:32px; box-sizing:border-box; padding:2.5px; object-fit:contain; background:transparent; box-shadow:none; }
}
@media(max-width:520px) {
 .login-workbench .login-shell { padding:12px; }
 .login-workbench .login-layout { min-height:calc(100dvh - 24px); border-radius:16px; }
 .login-workbench .login-panel { padding:28px 22px 18px; }
 .login-workbench .login-card-heading h2 { font-size:25px; }
 .login-workbench .captcha-field { grid-template-columns:minmax(0,1fr) 112px; }
 .login-workbench .captcha-image-button { width:112px; }
 .login-workbench .site-legal-footer { padding-inline:8px; flex-wrap:wrap; gap:8px; }
 .login-workbench .site-icp-footer { width:auto; max-width:100%; }
 .login-workbench .site-icp-footer a { padding:4px 8px; font-size:9px; }
}
@media(prefers-reduced-motion:reduce) {
 .login-workbench *, .login-workbench *::before,.login-workbench *::after { animation:none!important; transition:none!important; }
}
.public-language-control { position: fixed; top: 18px; right: 24px; z-index: 20; display: inline-flex; align-items: center; gap: 8px; color: #50658a; font-size: 12px; }
.public-language-control select { min-height: 34px; padding: 0 10px; border: 1px solid #d8e3f7; border-radius: 10px; background: #fff; color: #18315d; font: inherit; }
