/* Approved login-motion visual, scoped to the existing EIMS authentication gate. */
body.eims-aurora #authView{font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:#f3f2ff;background:#090d20;color-scheme:dark;--muted:#abb4ce;--line:rgba(193,200,255,.18);--ease:cubic-bezier(.23,1,.32,1)}
body.eims-aurora #authView *{box-sizing:border-box}
body.eims-aurora #authView{margin:0;min-width:320px;min-height:100dvh;overflow-x:clip;background:radial-gradient(ellipse at 17% 25%,#29275877,transparent 48%),radial-gradient(ellipse at 57% 100%,#25424f57,transparent 43%),#090d20;font-synthesis:none}
body.eims-aurora #authView button,
body.eims-aurora #authView input{font:inherit}
body.eims-aurora #authView button,
body.eims-aurora #authView a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body.eims-aurora #authView button{cursor:pointer}
body.eims-aurora #authView button:focus-visible,
body.eims-aurora #authView a:focus-visible{outline:2px solid #a7d9ef;outline-offset:5px}
body.eims-aurora #authView ::selection{background:#a9a4f7;color:#15132e}
body.eims-aurora #authView .auth-scene{position:relative;min-height:100dvh;isolation:isolate;overflow:hidden}
body.eims-aurora #authView .auth-atmosphere{position:absolute;inset:0;z-index:-3;pointer-events:none;background:radial-gradient(ellipse at 30% 49%,#6350b322,transparent 43%),radial-gradient(ellipse at 65% 28%,#36336620,transparent 38%)}
body.eims-aurora #authView .auth-ambient{position:absolute;border-radius:50%;filter:blur(70px);opacity:.24;pointer-events:none;z-index:-2}
body.eims-aurora #authView .auth-ambient-one{width:40vw;height:40vw;left:8%;top:7%;background:#5753b6;animation:auth-ambient-drift 22s ease-in-out infinite alternate}
body.eims-aurora #authView .auth-ambient-two{width:30vw;height:23vw;left:28%;bottom:3%;background:#238fab;opacity:.12;animation:auth-ambient-drift 27s ease-in-out infinite alternate-reverse}
@keyframes auth-ambient-drift{to{transform:translate(6vw,3vh) scale(1.12)}}
body.eims-aurora #authView .auth-topbar{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:36px 4.5vw;gap:20px}
body.eims-aurora #authView .auth-scene-brand{display:flex;align-items:center;gap:18px;color:#f8f6ff;text-decoration:none}
body.eims-aurora #authView .auth-wordmark{font-size:29px;line-height:1;font-weight:730;letter-spacing:-.04em}
body.eims-aurora #authView .auth-scene-name{font-size:13px;color:#b5bdd7;padding-left:18px;border-left:1px solid #a8b3d32e;line-height:20px}
body.eims-aurora #authView .auth-art-stage{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;pointer-events:none;z-index:-1}
body.eims-aurora #authView .auth-art-stage canvas{width:100%;height:100%;display:block;opacity:0;transition:opacity 700ms var(--ease)}
body.eims-aurora #authView .auth-art-stage.auth-ready canvas{opacity:1}
body.eims-aurora #authView .auth-art-stage.auth-ready .auth-fallback-ribbon{opacity:0}
body.eims-aurora #authView .auth-fallback-ribbon{position:absolute;left:25%;top:22%;width:48%;aspect-ratio:1;border-radius:45% 55% 65% 35%;border:0;height:14%;background:linear-gradient(120deg,#344bb4,#7762ac,#4bb8c3);transform:rotate(-28deg) skewY(12deg);box-shadow:0 30px 0 #544d9b66,0 -28px 0 #3674ac88;opacity:.7;transition:opacity 300ms}
body.eims-aurora #authView .auth-fallback-ribbon:after{display:none;content:"";position:absolute;inset:-24%;border-radius:50%;border:1px solid #b7c2f144;transform:rotateX(53deg)}
body.eims-aurora #authView .auth-composition{min-height:calc(100dvh - 182px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.85fr);align-items:center;gap:7vw;padding:2vh 8vw 6vh 6.5vw}
body.eims-aurora #authView .auth-story{align-self:end;padding-bottom:4vh;max-width:620px;pointer-events:none}
body.eims-aurora #authView .auth-story :is(h1,h2){font-size:clamp(38px,3.6vw,57px);line-height:1.2;font-weight:510;letter-spacing:-.035em;margin:0 0 19px;text-wrap:balance}
body.eims-aurora #authView .auth-story p{font-size:15px;line-height:1.9;color:#b6c0d8;margin:0;max-width:420px}
body.eims-aurora #authView .auth-story-rule{width:44px;height:2px;background:linear-gradient(90deg,#b8b2ec,#7ec2d2);margin-bottom:25px}
body.eims-aurora #authView .auth-access{position:relative;max-width:430px;width:100%;justify-self:end;padding:34px 30px 27px;border:1px solid #d6daff18;border-radius:24px;background:linear-gradient(145deg,rgba(34,39,65,.68),rgba(17,22,41,.78));box-shadow:0 30px 90px #02071850;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
body.eims-aurora #authView .auth-access:before{content:"";position:absolute;inset:-1px 24px auto;height:1px;background:linear-gradient(90deg,transparent,#c3c2ff60,transparent)}
body.eims-aurora #authView .auth-access-head{margin-bottom:30px}
body.eims-aurora #authView .auth-access-head h2{margin:0 0 10px;font-size:29px;font-weight:550;letter-spacing:-.025em}
body.eims-aurora #authView .auth-access-head p{margin:0;color:#b2bcd4;font-size:14px;line-height:1.7}
body.eims-aurora #authView .auth-field{margin-bottom:21px}
body.eims-aurora #authView .auth-field label{display:block;color:#dae0f2;font-size:13px;margin:0 0 10px}
body.eims-aurora #authView .auth-input-wrap{position:relative}
body.eims-aurora #authView .auth-input-wrap>svg{position:absolute;left:15px;top:18px;width:18px;height:18px;color:#aab5d1;pointer-events:none}
body.eims-aurora #authView input{display:block;width:100%;height:54px;border:1px solid #66729174;border-radius:10px;background:#0b112877;padding:0 16px 0 44px;color:#f8f7ff;caret-color:#bfc7ff;outline:none;font-size:15px;transition:border-color 160ms,background-color 160ms,box-shadow 160ms}
body.eims-aurora #authView input::placeholder{color:#a2aec9}
body.eims-aurora #authView input:focus{border-color:#b0b8ef;background:#0c132fc7;box-shadow:0 0 0 3px #9e9ae018}
body.eims-aurora #authView input[aria-invalid=true]{border-color:#e698ae}
body.eims-aurora #authView .auth-password-input{padding-right:52px}
body.eims-aurora #authView .auth-password-toggle{position:absolute;right:6px;top:6px;width:42px;height:42px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#b5bfd9;border-radius:7px}
body.eims-aurora #authView .auth-password-toggle svg{width:20px;height:20px}
body.eims-aurora #authView .auth-password-toggle:hover{color:#fff;background:#8b92cb18}
body.eims-aurora #authView .auth-submit{margin-top:8px;width:100%;height:54px;display:flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(110deg,#bdcef8,#d4c1f5 66%,#bfddea);color:#1b203a;border:0;border-radius:10px;font-size:15px;font-weight:650;box-shadow:0 7px 25px #837dcc16;transition:transform 130ms var(--ease),filter 150ms}
body.eims-aurora #authView .auth-submit:hover{filter:brightness(1.06)}
body.eims-aurora #authView .auth-submit:active:not(:disabled){transform:scale(.985)}
body.eims-aurora #authView .auth-submit:disabled{cursor:wait;opacity:.75}
body.eims-aurora #authView .auth-submit svg{width:17px;height:17px}
body.eims-aurora #authView .auth-submit .auth-spinner{width:16px;height:16px;border-radius:50%;border:2px solid #212b453d;border-top-color:#26314b;animation:auth-spin .7s linear infinite}
@keyframes auth-spin{to{transform:rotate(360deg)}}
body.eims-aurora #authView .auth-login-help{font-size:12px;color:#aeb9d2;line-height:1.6;margin:19px 0 0;text-align:center}
body.eims-aurora #authView .auth-feedback{font-size:13px;line-height:1.65;color:#b9c5dc;min-height:45px;margin:17px 0 0}
body.eims-aurora #authView .auth-feedback.auth-error{color:#ffb9c9}
body.eims-aurora #authView .auth-scene-footer{padding:20px 4.5vw 27px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#a4b1ce;font-size:12px;position:relative;z-index:3}
body.eims-aurora #authView .auth-motion-control{display:flex;align-items:center;gap:9px;background:#c5cbff08;border:1px solid #9da9d52d;color:#c6cde4;border-radius:22px;padding:10px 15px;min-height:42px;font-size:12px}
body.eims-aurora #authView .auth-motion-control svg{width:13px;height:13px}
body.eims-aurora #authView .auth-motion-control:hover{border-color:#bac4e46a;color:#fff}
body.eims-aurora #authView .auth-footer-meta{display:flex;gap:23px;align-items:center}
body.eims-aurora #authView .auth-skip{position:fixed;top:12px;left:12px;transform:translateY(-180%);z-index:20;color:#171c30;background:#d8d8ff;padding:12px 18px;border-radius:8px}
body.eims-aurora #authView .auth-skip:focus{transform:none}
body.eims-aurora #authView.auth-is-paused .auth-ambient{animation-play-state:paused}
body.eims-aurora #authView.auth-reduced-motion .auth-ambient{animation:none;transform:none}
@media(min-width:1600px){
body.eims-aurora #authView .auth-composition{grid-template-columns:1.4fr .8fr;padding-right:12vw}
body.eims-aurora #authView .auth-story{padding-left:3vw}
body.eims-aurora #authView .auth-access{max-width:430px}
}
@media(max-width:1100px){
body.eims-aurora #authView .auth-composition{gap:4vw;padding-left:5vw;padding-right:5vw;grid-template-columns:1fr 380px}
body.eims-aurora #authView .auth-story :is(h1,h2){font-size:39px}
body.eims-aurora #authView .auth-story p{font-size:14px}
body.eims-aurora #authView .auth-access{padding:29px 26px}
body.eims-aurora #authView .auth-topbar{padding-top:27px}
}
@media(max-width:760px){
body.eims-aurora #authView .auth-scene{min-height:100dvh}
body.eims-aurora #authView .auth-topbar{padding:23px 23px 0}
body.eims-aurora #authView .auth-wordmark{font-size:26px}
body.eims-aurora #authView .auth-scene-brand{gap:12px}
body.eims-aurora #authView .auth-scene-name{font-size:12px;padding-left:12px}
body.eims-aurora #authView .auth-composition{display:flex;flex-direction:column;gap:0;padding:268px 22px 0;min-height:0}
body.eims-aurora #authView .auth-story{display:none}
body.eims-aurora #authView .auth-access{max-width:420px;justify-self:auto;padding:26px 23px 21px;border-radius:20px;background:linear-gradient(145deg,#19213ccc,#11172de6);backdrop-filter:blur(14px)}
body.eims-aurora #authView .auth-access-head{margin-bottom:25px}
body.eims-aurora #authView .auth-access-head h2{font-size:26px}
body.eims-aurora #authView .auth-access-head p{font-size:13px}
body.eims-aurora #authView .auth-field{margin-bottom:19px}
body.eims-aurora #authView input{font-size:16px}
body.eims-aurora #authView .auth-scene-footer{padding:23px 23px 25px;flex-wrap:wrap;gap:15px}
body.eims-aurora #authView .auth-footer-meta{gap:0}
body.eims-aurora #authView .auth-footer-meta>span:first-child{display:none}
body.eims-aurora #authView .auth-ambient-one{width:70vw;height:75vw;left:0;top:0;filter:blur(50px)}
body.eims-aurora #authView .auth-ambient-two{width:80vw;height:50vw;left:18%;top:25%;filter:blur(60px)}
body.eims-aurora #authView .auth-login-help{font-size:12px}
}
@media(max-height:740px) and (min-width:761px){
body.eims-aurora #authView .auth-topbar{padding-top:22px;padding-bottom:18px}
body.eims-aurora #authView .auth-composition{min-height:calc(100dvh - 130px);padding-top:0;padding-bottom:0}
body.eims-aurora #authView .auth-access{padding-top:25px;padding-bottom:20px}
body.eims-aurora #authView .auth-access-head{margin-bottom:20px}
body.eims-aurora #authView .auth-field{margin-bottom:15px}
body.eims-aurora #authView .auth-story{padding-bottom:2vh}
body.eims-aurora #authView .auth-scene-footer{padding-top:14px;padding-bottom:16px}
body.eims-aurora #authView .auth-feedback{min-height:24px;margin-top:12px}
body.eims-aurora #authView .auth-story :is(h1,h2){font-size:41px}
}
@media(prefers-reduced-motion:reduce){
body.eims-aurora #authView .auth-ambient{animation:none}
body.eims-aurora #authView .auth-art-stage canvas{transition:none}
body.eims-aurora #authView button,
body.eims-aurora #authView input{transition:none!important}
body.eims-aurora #authView .auth-submit:active:not(:disabled){transform:none}
body.eims-aurora #authView .auth-spinner{animation:none!important}
}


/* Authentication compatibility: app.js owns visibility, submit events and error text. */
body.eims-aurora #authView { display:block; position:relative; padding:0; isolation:isolate; font-size:14px; }
body.eims-aurora.auth-authenticated #authView,
body.eims-aurora #authView[hidden],
body.eims-aurora #authView [hidden] { display:none !important; }
body.eims-aurora #authView .auth-form { display:block; margin:0; }
body.eims-aurora #authView .auth-field label { display:block; gap:0; font-weight:400; }
body.eims-aurora #authView .auth-access-head :is(h1,h2) { margin:0 0 10px; font-size:29px; line-height:1.2; font-weight:550; letter-spacing:-.025em; color:#f3f2ff; }
body.eims-aurora #authView .auth-access-head p { margin:0; color:#b2bcd4; font-size:14px; line-height:1.7; }
body.eims-aurora #authView .auth-scene-brand { margin:0; padding:0; border-bottom:0; }
body.eims-aurora #authView .auth-wordmark { color:#f8f6ff; }
body.eims-aurora #authView .auth-scene-name { margin:0; display:block; }
body.eims-aurora #authView .auth-login-help { color:#aeb9d2; font-size:12px; line-height:1.6; margin:19px 0 0; }
body.eims-aurora #authView #authMessage { color:#ffb9c9; font-size:13px; line-height:1.65; min-height:20px; padding:0; margin:17px 0 0; overflow-wrap:anywhere; }
body.eims-aurora #authView .auth-checking { color:#b9c5dc; padding:0; text-align:left; }
body.eims-aurora #authView .auth-checking-status { display:flex; align-items:center; gap:10px; min-height:88px; color:#b9c5dc; }
body.eims-aurora #authView .auth-checking-spinner { width:18px; height:18px; flex:0 0 auto; border:2px solid #a7b9dc44; border-top-color:#c3c5f3; border-radius:50%; animation:auth-spin .7s linear infinite; }
body.eims-aurora #authView .auth-checking p { margin:0; font-size:14px; }
body.eims-aurora #authView .auth-art-stage canvas { max-width:none; }
body.eims-aurora #authView .auth-submit svg[hidden],
body.eims-aurora #authView .auth-spinner[hidden] { display:none !important; }
body.eims-aurora #authView .auth-password-toggle:focus-visible { outline:2px solid #a7d9ef; outline-offset:2px; }
body.eims-aurora #authView.auth-is-paused .auth-checking-spinner { animation-play-state:paused; }
@media(max-width:760px) {
  body.eims-aurora #authView .auth-access-head :is(h1,h2) { font-size:26px; }
  body.eims-aurora #authView .auth-access-head p { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
  body.eims-aurora #authView .auth-checking-spinner { animation:none; }
}
