
.auth-brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:700;letter-spacing:-.5px}.auth-brand img{width:28px;height:30px;object-fit:contain}.auth-link{font-size:13px;color:#82758e}.auth-shell{max-width:var(--app-width,520px);padding:20px 12px 32px;margin:0 auto}.auth-card{background:#fff;border-radius:22px;padding:24px;min-height:470px}.auth-bot{display:flex;align-items:center;gap:12px;margin-bottom:25px}.auth-bot>img{width:44px;height:44px}.auth-bot h1{font-size:23px;line-height:29px;letter-spacing:-.5px;margin:0 0 2px}.auth-bot span{font-size:13px;color:#91899b}.auth-message{padding:15px 17px;background:#f5f2f8;border-radius:17px 17px 17px 5px;font-size:15px;line-height:23px;margin-bottom:20px;color:#4b4355}.auth-progress{display:flex;gap:5px;margin:0 0 12px}.auth-progress i{height:3px;border-radius:4px;flex:1;background:#eeeaf2}.auth-progress i.done{background:#a997c5}.auth-step{font-size:12px;color:#99909f;margin:0 0 10px}.auth-form{display:grid;gap:16px}.auth-label{display:grid;gap:7px;font-size:13px;color:#77717d}.auth-field{display:flex;background:#f6f5f8;border-radius:13px;align-items:center;overflow:hidden}.auth-field input{min-width:0;flex:1;width:100%;padding:13px 14px;font-size:15px;border:0;background:none;color:#242029;outline:none}.auth-field:focus-within{box-shadow:0 0 0 2px #b4a7c6}.auth-field button{padding:10px;background:none;color:#84758f;font-size:12px;flex:none}.auth-field img{width:20px;height:20px;display:block}.auth-primary{width:100%;padding:13px 15px;background:#eee8f5;color:#574368;border-radius:13px;font-size:14px;font-weight:600;min-height:45px}.auth-secondary{background:none;color:#8b7d97;padding:8px;font-size:13px}.auth-actions{display:flex;gap:8px;margin:14px 0}.auth-actions>*{flex:1}.auth-check{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:19px;color:#87818d;margin:12px 0}.auth-check input{accent-color:#9b85b7;width:16px;height:16px;flex:none;margin:2px 0}.auth-check button{font:inherit;background:none;color:#655274;padding:0;text-decoration:underline}.auth-demo{font-size:11px;line-height:17px;color:#a59eac;margin:22px 0 0}.auth-token{display:block;text-align:center;letter-spacing:1px;font:500 20px/28px ui-monospace,monospace;background:#f6f5f8;padding:17px 8px;border-radius:13px}.auth-codes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.auth-codes code{background:#f6f5f8;padding:10px;text-align:center;font-size:13px;border-radius:9px}.auth-question{display:flex;gap:7px;margin-top:25px;border-top:1px solid #f2eff5;padding-top:16px}.auth-question input{flex:1;min-width:0;border:0;background:#f6f5f8;padding:12px;border-radius:12px;font-size:13px}.auth-question button{width:38px;background:#eee8f5;border-radius:12px}.auth-question img{width:20px;height:20px}.auth-answer{font-size:13px;line-height:20px;color:#82758e}.auth-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#37313e;color:#fff;padding:12px 16px;border-radius:13px;font-size:13px;max-width:90%;z-index:30}.auth-toast[hidden]{display:none}#auth-document{border:0;border-radius:20px;width:min(420px,90vw);padding:24px;color:#4b4355}#auth-document::backdrop{background:#29223150}#auth-document h2{font-size:20px}#auth-document p{font-size:14px;line-height:22px}#auth-document button{padding:10px 20px;border-radius:12px}body :focus-visible{outline:2px solid #ad9dbe;outline-offset:3px}@media(max-width:400px){.auth-card{padding:20px 16px}.auth-shell{padding-top:12px}}
/* App-style authentication, centered with natural scrolling on small screens. */
body[data-auth]{background:#fff;color:#242029;min-height:100svh}.auth-shell{width:100%;max-width:420px;min-height:100svh;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:safe center}.auth-card{width:100%;min-height:0;border-radius:0;padding:0;margin:auto 0;background:none}.auth-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;min-height:36px}.auth-back{width:32px;height:36px;display:grid;place-items:center}.auth-back img{width:23px;height:23px}.auth-bot{flex-direction:column;text-align:center;gap:13px;margin-bottom:22px}.auth-bot>img{width:56px;height:56px}.auth-bot h1{font-size:27px;line-height:34px;font-weight:650;letter-spacing:-.6px}.auth-bot span{font-size:13px}.auth-message{font-size:14px;line-height:21px;padding:13px 15px;margin-bottom:22px}.auth-label{font-size:12px;gap:8px}.auth-field{border-radius:12px}.auth-field input{padding:14px;font-size:16px}.auth-field img{filter:brightness(0);opacity:.45}.auth-primary{min-height:48px;border-radius:13px;font-size:14px}.auth-demo{text-align:center;font-size:10px;line-height:16px;margin-top:24px;color:#aaa3af}.auth-question{margin-top:17px}.auth-check{margin:5px 0}.auth-answer:empty{display:none}body[data-auth=login] .auth-message{background:none;padding:0;text-align:center;color:#918895;max-width:290px;margin:0 auto 25px}body[data-auth=login] #auth-content>.auth-secondary{display:block;margin:11px auto 0;font-size:12px}.auth-toast{width:max-content}@media(max-width:400px){.auth-shell{padding-left:24px;padding-right:24px}.auth-card{padding:0}.auth-bot h1{font-size:25px}}


/* Shared application header and the supplied lavender background. */
body[data-auth]{background:#e9e3f9;color:#242029;color-scheme:light;--auth-header-height:48px}.auth-shell{max-width:480px;width:100%;min-height:calc(100svh - var(--auth-header-height) - env(safe-area-inset-top));padding:24px 12px;display:flex;flex-direction:column;margin:0 auto;justify-content:safe center}.auth-card{background:#fff;border-radius:22px;padding:28px 30px;margin:auto 0;min-height:0}.auth-bot h2{font-size:27px;line-height:34px;font-weight:600;letter-spacing:-.6px;margin:0 0 2px}.auth-bot>img{width:65px;height:58px;object-fit:contain}.auth-header-back img{width:24px!important;height:24px!important}.auth-link{color:#85808d}.auth-card .auth-demo{margin-top:20px}.auth-bot{margin-bottom:20px}@media(min-width:600px){body[data-auth]{--auth-header-height:62px}}@media(max-width:400px){.auth-card{padding:24px 20px}.auth-shell{padding:14px 12px}.auth-bot h2{font-size:25px}}

/* Larger desktop authentication content; mobile sizing stays unchanged. */
@media(min-width:900px){.auth-shell{max-width:580px}.auth-card{padding:34px 40px;border-radius:24px}.auth-bot{gap:15px;margin-bottom:24px}.auth-bot>img{width:78px;height:69px}.auth-bot h2{font-size:32px;line-height:40px}.auth-bot span{font-size:15px}.auth-message{font-size:16px;line-height:25px;padding:16px 18px}body[data-auth=login] .auth-message{max-width:360px;margin-bottom:28px}.auth-form{gap:19px}.auth-label{font-size:14px;gap:9px}.auth-field input{padding:17px 16px;font-size:17px}.auth-field button{padding:12px;font-size:14px}.auth-field img{width:23px;height:23px}.auth-primary{min-height:54px;font-size:16px}.auth-secondary,body[data-auth=login] #auth-content>.auth-secondary{font-size:14px}.auth-check{font-size:14px;line-height:22px;gap:11px}.auth-check input{width:18px;height:18px}.auth-question input{font-size:15px;padding:14px}.auth-question button{width:44px}.auth-step{font-size:14px}.auth-token{font-size:23px;line-height:32px;padding:20px 10px}.auth-codes code{font-size:15px;padding:12px}.auth-demo{font-size:12px;line-height:18px}.auth-answer{font-size:15px;line-height:22px}}

.auth-message.is-typing{display:flex;align-items:center;gap:9px;color:#99909f;min-height:58px}.typing-dots{display:inline-flex;gap:4px;align-items:center}.typing-dots i{width:4px;height:4px;border-radius:50%;background:#a18fb3;animation:typing-pulse 1s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}.auth-waiting>.auth-form,.auth-waiting>.auth-primary,.auth-waiting>.auth-secondary,.auth-waiting>.auth-actions,.auth-waiting>.auth-token,.auth-waiting>.auth-codes,.auth-waiting>.auth-question{visibility:hidden;pointer-events:none}.message-arrived{animation:message-arrive .2s ease-out}@keyframes typing-pulse{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes message-arrive{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.typing-dots i,.message-arrived{animation:none}}
