/* Login shares the CRM palette. Optics are confined to decorative glass layers. */
.login-scene {
  --scene-ink:#243a56; --scene-muted:#526b89; --scene-blue:#286bd8;
  --pointer-x:0px; --pointer-y:0px; --pointer-rx:0deg; --pointer-ry:0deg;
  position:relative; isolation:isolate; display:flex; flex-direction:column;
  align-items:center; justify-content:center; min-height:100vh; min-height:100svh;
  padding:100px 48px 82px; overflow:hidden; color:var(--scene-ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  background:radial-gradient(ellipse at 25% 5%,#c6defa77,transparent 40%),radial-gradient(ellipse at 95% 70%,#e5d8f255,transparent 40%),#edf3fb;
  -webkit-font-smoothing:antialiased;
}
.login-scene .scene-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.login-scene .scene-halo{position:absolute;width:780px;height:780px;left:calc(27% - 390px);top:calc(44% - 390px);border-radius:50%;background:radial-gradient(circle,#ffffff9c,#dceaff3d 44%,transparent 70%)}
.login-scene .scene-beam{position:absolute;top:-33%;width:360px;height:145%;transform-origin:50% 0;background:linear-gradient(90deg,transparent,#ffffff80 46%,#ffffff0a);filter:blur(24px);opacity:.35}
.login-scene .beam-one{left:15%;transform:rotate(-24deg)}
.login-scene .beam-two{right:-10%;transform:rotate(29deg);opacity:.18;width:540px}
.login-scene .scene-floor{position:absolute;bottom:-190px;left:-15%;width:130%;height:340px;border-radius:50%;background:#cedef8;filter:blur(85px);opacity:.28}
.login-scene .scene-grain{display:none}
.login-scene .scene-toolbar,.login-scene .scene-footer{position:absolute;left:48px;right:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1200px;margin:0 auto}
.login-scene .scene-toolbar{top:29px;color:#526b89;font-size:12px;letter-spacing:.04em}
.login-scene .scene-toolbar>span{display:inline-flex;align-items:center;gap:10px}
.login-scene .scene-toolbar>span::before{content:'';width:5px;height:5px;border-radius:50%;background:#5089e0;box-shadow:0 0 0 4px #5089e00b}
.login-scene .motion-controls{display:flex;align-items:center;gap:9px}
.login-scene .motion-toggle,.login-scene .motion-replay{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 13px;border:1px solid #ffffffc7;border-radius:22px;color:#536d90;font-size:12px;font-weight:500;background:#ffffff40;box-shadow:inset 0 1px 0 #ffffff80}
.login-scene .motion-replay{border-color:transparent;background:transparent;box-shadow:none}
.login-scene .motion-toggle:hover,.login-scene .motion-replay:hover{background:#ffffffb3}
.login-scene .motion-toggle[aria-pressed=true]{border-color:#a9c7ed;background:#ffffff80}
.login-scene .motion-controls button:disabled{cursor:default}
.login-scene .auth-layout{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:center;gap:clamp(48px,7vw,96px);width:100%;max-width:1050px}
.login-scene .auth-story{min-width:0;padding:0 0 2px}
.login-scene .scene-brand{margin-bottom:16px;color:#526b89;font-size:12px;line-height:1.5;letter-spacing:.16em}
.login-scene .scene-art{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:340px;margin:0 0 24px;perspective:1000px;transform-style:preserve-3d;transform:translate3d(var(--pointer-x),var(--pointer-y),0) rotateX(var(--pointer-rx)) rotateY(var(--pointer-ry))}
.login-scene .art-halo{position:absolute;z-index:-3;width:430px;height:380px;border-radius:50%;background:radial-gradient(ellipse,#b9d5ff6b,#b9d5ff00 70%);pointer-events:none}
.login-scene .art-shadow{position:absolute;z-index:-2;bottom:-5px;width:240px;height:30px;border-radius:50%;background:#567ebc35;filter:blur(20px);pointer-events:none}
.login-scene .art-caustic{position:absolute;z-index:-1;width:365px;height:330px;border-radius:38%;background:conic-gradient(from 35deg,transparent 0deg,#fff9 45deg,#86b9ff50 75deg,transparent 115deg,transparent 240deg,#fff8 290deg,transparent 340deg);filter:blur(18px);opacity:.12;pointer-events:none}
.login-scene .glass-depth{position:absolute;width:296px;height:316px;border-radius:25px;border:1px solid #ffffffdc;background:linear-gradient(132deg,#ffffff68,#d4e5ff35 45%,#ffffff45);box-shadow:inset 0 1px 0 #fff,1px 1px 0 #8fb0e040,0 24px 42px -28px #426ba34d;pointer-events:none;backface-visibility:hidden}
.login-scene .depth-back{transform:translate(-26px,-18px) rotate(-8deg)}
.login-scene .depth-mid{transform:translate(18px,10px) rotate(5deg);background:linear-gradient(140deg,#ffffff80,#c5dbfb25 65%,#ffffff80)}
.login-scene .glass-orbit{position:absolute;width:298px;height:318px;overflow:visible;pointer-events:none;fill:none;stroke:#fff;stroke-width:1.4;opacity:.65}
.login-scene .glass-orbit rect{vector-effect:non-scaling-stroke}
.login-scene .orbit-one{transform:translate(-26px,-18px) rotate(-8deg)}
.login-scene .orbit-two{transform:translate(18px,10px) rotate(5deg);stroke:#a1c6ff;stroke-width:1;opacity:.45}
.login-scene .logo-plaque{position:relative;width:296px;margin:0;padding:12px;border:1px solid #ffffffed;border-radius:20px;background:linear-gradient(145deg,#ffffffde,#f4f8ff88);box-shadow:0 30px 55px -26px #436baf70,0 12px 22px -17px #294f8966,inset 0 1px 0 #fff;transform:rotate(-4deg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);backface-visibility:hidden}
.login-scene .logo-plaque img{display:block;width:100%;height:auto;aspect-ratio:1570 / 1452;object-fit:contain;border-radius:10px;box-shadow:0 0 0 1px #8eafd426}
.login-scene .logo-plaque figcaption{padding:10px 3px 1px;color:#5d7597;text-align:center;font-size:9px;line-height:1.4;letter-spacing:.18em}
.login-scene .plaque-light-clip{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.login-scene .plaque-light{opacity:0;position:absolute;top:-30%;left:0;width:45%;height:160%;transform:translateX(-180%) skewX(-20deg);background:linear-gradient(90deg,transparent,#ffffff10 20%,#ffffff73 48%,#c5ddff30 51%,transparent 100%);pointer-events:none}
.login-scene .art-caption{color:#526b89;font-size:10px;font-weight:600;letter-spacing:.2em;line-height:1.5}
.login-scene .auth-story h1{margin:15px 0 17px;font-family:inherit;font-size:clamp(34px,3.7vw,44px);line-height:1.15;font-weight:650;letter-spacing:-1.8px;text-wrap:balance}
.login-scene .auth-story .scene-description{max-width:390px;font-size:14px;line-height:1.8;color:var(--scene-muted)}
.login-scene .scene-card{position:relative;width:100%;max-width:446px;margin:9px 0 0;padding:39px 38px 30px;border:1px solid #ffffffed;border-radius:29px;background:linear-gradient(135deg,#ffffffed,#f9fbffbb);box-shadow:0 32px 75px -35px #3d619e50,0 8px 22px -16px #3d619e35,inset 0 1px 0 #fff;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}
.login-scene .card-edge-light{position:absolute;inset:-1px;border-radius:inherit;border:1px solid #fff;box-shadow:inset 0 0 12px #ffffff40,0 0 18px #c9dfff38;pointer-events:none;opacity:0}
.login-scene .card-kicker{display:block;color:#526b89;font-size:10px;font-weight:650;line-height:1.5;letter-spacing:.18em;margin-bottom:19px}
.login-scene .scene-card h2{font-size:28px;line-height:1.2;letter-spacing:-1px;font-weight:600}
.login-scene .scene-card>p{max-width:310px;margin:12px 0 29px;color:var(--scene-muted);font-size:14px;line-height:1.65}
.login-scene .field{gap:9px;margin-bottom:19px;font-size:14px;line-height:1.4;font-weight:500;color:#304965}
.login-scene .field input{display:block;width:100%;min-height:53px;padding:14px 15px;border:1px solid #d9e3ef;border-radius:12px;color:var(--scene-ink);font-size:16px;line-height:1.4;font-weight:400;background:#ffffffc9;box-shadow:inset 0 1px 3px #40597904,0 1px 0 #fff}
.login-scene .field input::placeholder{color:#526b89;opacity:1}
.login-scene .field input:hover{border-color:#adc8ea}
.login-scene .field input:focus{border-color:#77a9f0;background:#fff;outline:3px solid #77a9f029;outline-offset:2px}
.login-scene .field input:-webkit-autofill{-webkit-text-fill-color:#243a56;-webkit-box-shadow:0 0 0 100px #f3f7ff inset}
.login-scene .password-control{position:relative;display:block}
.login-scene .password-control input{padding-right:52px}
.login-scene .password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:9px;background:transparent;color:#6d85a3;box-shadow:none}
.login-scene .password-toggle svg{width:20px;height:20px}
.login-scene .password-toggle:hover{background:#7e9dc410;color:#365d90}
.login-scene .form-error:not(:empty){margin:3px 0 16px;padding:12px 14px;border:1px solid #b96b5930;border-radius:11px;background:#fff0f0;color:#a24450;font-size:13px;line-height:1.55}
.login-scene .button.primary.login-submit{position:relative;display:flex;justify-content:space-between;width:100%;min-height:53px;margin-top:7px;padding:14px 19px;border:1px solid #3573d6;border-radius:12px;background:linear-gradient(160deg,#326dce,#2567d8);color:#fff;font-size:15px;font-weight:600;line-height:1.4;letter-spacing:.01em;box-shadow:inset 0 1px 0 #ffffff70,0 8px 18px -10px #286bd880}
.login-scene .button.primary.login-submit svg{width:19px;height:19px;opacity:.85}
.login-scene .button.primary.login-submit:hover{background:linear-gradient(160deg,#2d68cb,#2465cf);box-shadow:inset 0 1px 0 #ffffff80,0 10px 23px -10px #286bd880;filter:none}
.login-scene .button.primary.login-submit:active{box-shadow:inset 0 2px 4px #163b7140}
.login-scene #login-form[data-pending=true] .login-submit{opacity:.8}
.login-scene #login-form[data-pending=true] .login-submit svg{visibility:hidden}
.login-scene #login-form[data-pending=true] .login-submit::after{content:'';position:absolute;width:18px;height:18px;right:20px;top:calc(50% - 9px);border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%}
.login-scene .auth-footnote{margin-top:23px;padding-top:20px;border-top:1px solid #a3b8d520;color:#526b89;font-size:12px;line-height:1.75;text-align:left}
.login-scene button:focus-visible,.login-scene a:focus-visible{outline:3px solid #77a9f0;outline-offset:4px}
.login-scene .scene-footer{bottom:28px;padding-top:17px;border-top:1px solid #9aafcc26;color:#526b89;font-size:11px;line-height:1.5;letter-spacing:.02em}
@media(min-width:721px) and (max-height:780px){
 .login-scene{padding-top:84px;padding-bottom:68px}.login-scene .scene-art{height:270px;margin-bottom:15px}
 .login-scene .logo-plaque{width:244px}.login-scene .glass-depth{width:244px;height:265px}.login-scene .glass-orbit{width:246px;height:267px}
 .login-scene .art-caustic{width:305px;height:280px}.login-scene .scene-brand{margin-bottom:8px}
 .login-scene .auth-story h1{font-size:40px;margin-top:12px;margin-bottom:12px}.login-scene .scene-card{padding-top:32px;padding-bottom:25px}
 .login-scene .scene-card>p{margin-bottom:23px}.login-scene .auth-footnote{margin-top:20px;padding-top:16px}
}
@media(max-width:980px) and (min-width:721px){
 .login-scene{padding-left:30px;padding-right:30px}.login-scene .auth-layout{gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
 .login-scene .scene-card{padding:32px 26px 25px}.login-scene .scene-art{height:300px}.login-scene .logo-plaque{width:246px}
 .login-scene .glass-depth{width:246px;height:268px}.login-scene .glass-orbit{width:248px;height:270px}
 .login-scene .auth-story h1{font-size:35px;letter-spacing:-1.4px}.login-scene .scene-toolbar,.login-scene .scene-footer{left:30px;right:30px}
}
@media(max-width:720px){
 .login-scene{justify-content:flex-start;padding:88px 20px 26px}.login-scene .scene-toolbar{top:19px;left:22px;right:22px;font-size:11px}
 .login-scene .scene-toolbar>span{max-width:93px;line-height:1.4;gap:6px}.login-scene .motion-controls{gap:3px}
 .login-scene .motion-toggle,.login-scene .motion-replay{min-height:40px;padding:8px;font-size:10px;white-space:nowrap}
 .login-scene .scene-halo{top:-180px;left:calc(50% - 390px)}.login-scene .scene-beam{width:230px;opacity:.18}
 .login-scene .auth-layout{display:block;max-width:430px}.login-scene .auth-story{display:grid;grid-template-columns:84px minmax(0,1fr);column-gap:22px;align-items:center;padding:0 4px}
 .login-scene .scene-brand{grid-column:2;grid-row:1;align-self:end;font-size:9px;letter-spacing:.09em;line-height:1.5;margin:0 0 9px}
 .login-scene .scene-art{grid-column:1;grid-row:1 / 3;width:84px;height:100px;margin:0}
 .login-scene .logo-plaque{width:84px;padding:5px;border-radius:9px;box-shadow:0 15px 25px -13px #436baf59}
 .login-scene .logo-plaque img{border-radius:5px}.login-scene .glass-depth{width:72px;height:80px;border-radius:10px}
 .login-scene .depth-back{transform:translate(-8px,-5px) rotate(-8deg)}.login-scene .depth-mid{transform:translate(6px,3px) rotate(5deg)}
 .login-scene .glass-orbit{display:none}.login-scene .logo-plaque figcaption,.login-scene .art-caption,.login-scene .scene-description{display:none}
 .login-scene .art-halo{width:150px;height:150px}.login-scene .art-caustic{width:110px;height:110px}.login-scene .art-shadow{width:70px;height:15px;bottom:0;filter:blur(10px)}
 .login-scene .auth-story h1{grid-column:2;grid-row:2;align-self:start;font-size:25px;line-height:1.18;letter-spacing:-.8px;margin:0}
 .login-scene .scene-card{max-width:none;margin-top:29px;padding:28px 24px 24px;border-radius:24px}.login-scene .card-kicker{margin-bottom:14px;font-size:9px}
 .login-scene .scene-card h2{font-size:26px}.login-scene .scene-card>p{font-size:14px;margin:10px 0 25px}.login-scene .field{font-size:14px;margin-bottom:18px}
 .login-scene .field input{font-size:16px}.login-scene .auth-footnote{margin-top:20px;padding-top:17px;font-size:12px}
 .login-scene .scene-footer{position:static;width:100%;max-width:430px;margin:28px auto 0;padding:16px 4px 0;font-size:10px;gap:12px}
}
@media(max-width:360px){
 .login-scene{padding-left:16px;padding-right:16px}.login-scene .scene-toolbar{left:16px;right:16px}.login-scene .scene-toolbar>span{display:none}
 .login-scene .motion-controls{margin-left:auto}.login-scene .auth-story{grid-template-columns:72px minmax(0,1fr);column-gap:17px}
 .login-scene .scene-art,.login-scene .logo-plaque{width:72px}.login-scene .auth-story h1{font-size:23px}
 .login-scene .scene-card{padding-left:20px;padding-right:20px}.login-scene .scene-footer{font-size:9px}
}
@media(prefers-reduced-motion:no-preference){
 .login-scene #login-form[data-pending=true] .login-submit::after{animation:theatre-submit-pending .8s linear infinite}
 .login-scene .field input,.login-scene .motion-toggle,.login-scene .motion-replay,.login-scene .password-toggle,.login-scene .login-submit{transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}
 @keyframes theatre-submit-pending{to{transform:rotate(360deg)}}
}
@media(prefers-reduced-motion:reduce){
 .login-scene .scene-art{transform:none}.login-scene *,.login-scene *::before,.login-scene *::after{animation:none!important;transition:none!important}
}
/* Invitations use the same scene and components, with room for a longer profile form. */
.login-scene.is-invitation{justify-content:flex-start;padding-top:110px}
.login-scene.is-invitation .auth-layout{align-items:start}
.login-scene.is-invitation .auth-story{padding-top:42px}
.login-scene.is-invitation .scene-card{max-width:none;margin-top:0}
.login-scene.is-invitation .scene-card h2{font-size:26px;line-height:1.2}
.login-scene.is-invitation .scene-card>p{max-width:none}
.login-scene.is-invitation .invite-role{display:inline-block;padding:3px 9px;margin-right:4px;margin-bottom:6px;border-radius:8px;background:#e8f1ff;color:#386eb6;font-size:12px;font-weight:600}
.login-scene.is-invitation .hint{border:1px solid #dbe8fa;background:#edf4feab;color:#52749e;font-size:13px}
.login-scene.is-invitation .field-pair{gap:13px}
.login-scene.is-invitation .photo-field{margin:25px 0}
.login-scene.is-invitation .photo-choose{margin:0;width:auto}
.login-scene.is-invitation .install-note{font-size:12px}
.login-scene.is-invitation .scene-footer{position:static;width:100%;max-width:1050px;margin:36px auto 0}
@media(max-width:720px){
 .login-scene.is-invitation{padding-top:88px}.login-scene.is-invitation .auth-story{padding-top:0}
 .login-scene.is-invitation .scene-card{margin-top:29px}.login-scene.is-invitation .scene-footer{max-width:430px}
 .login-scene.is-invitation .scene-card h2{font-size:25px}.login-scene.is-invitation .photo-picker{padding:14px}
}
@media(max-width:450px){.login-scene.is-invitation .field-pair{grid-template-columns:1fr;gap:0}}
