/* One continuous porcelain stage; scoped to the public entry screen. */
.login-shell{--login-ink:#172337;--login-muted:#647287;min-height:100svh;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:88px minmax(580px,1fr) auto;background:radial-gradient(ellipse at 27% 60%,#dfedff 0,transparent 43%),#f5f7fa;color:var(--login-ink)}
.login-masthead{background:transparent;border:0;padding:0 clamp(24px,4.5vw,80px)}
.login-masthead .wordmark{font-size:32px;color:var(--login-ink)}
.login-masthead .wordmark span{font-size:16px;font-weight:500;color:#506078}
.masthead-account{color:var(--login-muted)}
.login-brand{margin:0;padding:42px 0 12px clamp(24px,4.5vw,80px);background:transparent;color:var(--login-ink);overflow:visible}
.login-brand h1{font-size:clamp(32px,3.7vw,60px);font-weight:600;line-height:1.1;letter-spacing:-2px;margin:0;max-width:none}
.login-scene{width:100%;height:430px;min-height:340px;margin:0;flex:1}
.login-form-panel{background:transparent;margin:0;padding:48px clamp(28px,5vw,88px);align-items:center;min-height:0}
.login-card{max-width:420px}
#auth-view-login>.mini-logo{display:none}
.login-card h2,.login-card #auth-view-register>h2,.login-card #auth-view-reset>h2{color:var(--login-ink);font-size:34px;letter-spacing:-1px;line-height:1.2}
.login-card .muted,.login-card .auth-switch{color:var(--login-muted);font-size:14px}
.login-card label{color:#35445a;font-size:14px}
.login-card input:not([type=checkbox]){background:#ffffffb8;border:1px solid #cbd5e3;border-radius:9px;min-height:52px;font-size:16px;color:var(--login-ink);padding:14px}
.login-card .password-input input{padding-right:90px}
.login-card input::placeholder{color:#8290a5}
.login-card input:focus{border-color:#4d79b5;box-shadow:0 0 0 4px #6194d31c}
.login-card form>.primary{border-radius:9px;background:#1b304e;border-color:#1b304e;min-height:52px;font-size:15px;justify-content:center;gap:16px}
.login-card .primary:hover{background:#294c77;border-color:#294c77}
.login-card .auth-inline-link,.login-card .auth-text-button{color:#38669f;min-height:44px;display:inline-flex;align-items:center}
.login-card .auth-label-row{margin-bottom:4px;align-items:center}
.login-card .password-toggle{min-height:44px;color:#506888;font-size:12px}
.login-card .auth-switch{margin-top:18px}
.login-card .admin-access{border-color:#d8e0eb;color:#67768b}
.login-card .admin-access summary{min-height:44px;display:flex;align-items:center;justify-content:center;gap:0}
.login-card .admin-access summary::before{content:'+';margin-right:9px}
.login-card .admin-access[open] summary::before{content:'−'}
.login-shell :is(button,a,summary):focus-visible{outline:2px solid #426fa8;outline-offset:4px}
.login-footer{margin:0 clamp(24px,4.5vw,80px);padding:22px 0;min-height:88px;border-color:#d7e0eb;color:#647287;background:transparent}
.login-footer .login-entity small{color:#647287}
.login-legal-links{gap:8px 20px;font-size:11px}
.login-legal-links a{text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.login-legal-links a:hover{text-decoration:underline}
.scene-motion-toggle{position:absolute;right:12px;bottom:10px;z-index:2;border:1px solid #cfdae7;background:#f5f7fac7;color:#52667f;border-radius:24px;min-height:44px;padding:0 14px;font-size:12px;backdrop-filter:blur(12px)}
@media(min-width:1600px){.login-brand{padding-top:52px}.login-form-panel{padding-top:64px;padding-bottom:64px}.login-scene{min-height:470px}}
@media(max-width:1000px){.login-shell{grid-template-columns:1fr 1fr}.login-brand h1{font-size:34px;letter-spacing:-1.3px}.login-form-panel{padding:40px 28px}.login-card h2{font-size:27px}.login-masthead{padding:0 28px}.login-brand{padding-left:28px}.login-footer{margin:0 28px}}
@media(max-width:680px){.login-shell{grid-template-columns:1fr;grid-template-rows:72px auto auto auto}.login-masthead{padding:0 24px}.login-masthead .wordmark{font-size:28px}.login-masthead .wordmark span{font-size:12px}.login-brand{display:block;padding:22px 24px 0;margin:0}.login-brand h1{font-size:32px;letter-spacing:-1.1px}.login-intro{position:relative}.login-scene{height:210px;min-height:0;width:100%;margin:0;flex:none}.scene-motion-toggle{bottom:0;right:0;font-size:11px}.login-form-panel{padding:20px 24px 40px;margin:0;min-height:0;align-items:start}.login-card{max-width:420px}.login-card h2{font-size:28px}.login-footer{grid-column:1;margin:0 24px;padding:22px 0;gap:12px}.login-legal-links{gap:4px 16px}.login-card .auth-consent{font-size:12px}.login-shell:has(#auth-view-register:not([hidden])) .login-brand,.login-shell:has(#auth-view-reset:not([hidden])) .login-brand,.login-shell:has(#auth-entry[hidden]) .login-brand{display:none}}
@media(prefers-reduced-motion:reduce){.scene-motion-toggle{display:none}.login-scene canvas{transition:none}}

/* Approved glossy character: seamless artwork with independently animated LEDs. */
.login-shell{background:radial-gradient(ellipse at 28% 70%,#eef5fb 0,transparent 58%),#f5f7fa}
.login-scene canvas{mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.login-scene .scene-fallback{inset:auto auto 0 50%;transform:translateX(-50%);width:min(100%,560px);aspect-ratio:1;filter:none;background:url('/assets/luchera-robot-poses.png') 100% 0/300% 200% no-repeat}
.login-scene .scene-fallback svg{width:100%;height:100%;max-width:none}
@media(min-width:1001px){.login-scene{min-height:480px}}
@media(max-width:680px){.login-scene{height:220px}.scene-motion-toggle{right:0;bottom:4px}.login-scene .scene-fallback{height:220px;width:220px}}
.login-scene canvas{mask-image:linear-gradient(to right,transparent,#000 7%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 97%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 97%,transparent);-webkit-mask-composite:source-in}
/* Inline vector control works with the production Content Security Policy. */
.scene-motion-toggle{width:44px;min-height:44px;padding:0;font-size:0;display:inline-flex;align-items:center;justify-content:center}
.scene-motion-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){.login-scene .scene-motion-toggle{display:none}}
