/* ZÜHRE customer login. Decorative only; authentication remains server controlled. */
.portal-login-page{background:#f5f5fa;color:#192139;isolation:isolate;min-height:100svh}
.portal-login-page .portal-bar{position:relative;z-index:2;height:88px;padding:0 max(6vw,24px);background:#0b1026;border-bottom:1px solid #ffffff10}
.portal-login-page .portal-bar .brand img{width:210px;max-height:68px}
.portal-login-page .portal-bar>span{font-size:13px;letter-spacing:.04em;color:#bcc2d8}
.portal-login-page .portal-main{position:relative;z-index:1;max-width:1280px;padding:54px 40px 60px}
.portal-login-page .portal-login{grid-template-columns:minmax(0,1.15fr) minmax(360px,.9fr);gap:clamp(48px,7vw,112px);min-height:calc(100svh - 202px)}
.login-intro{position:relative;padding:20px 0 40px}
.login-intro .eyebrow{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:750;color:#7160c9;letter-spacing:.22em;margin:0 0 30px}
.login-intro .eyebrow::before{content:"";width:28px;height:1px;background:#8c7be0}
.login-intro h1{font-size:clamp(42px,5.25vw,76px);font-weight:650;line-height:1.12;letter-spacing:-.065em;margin:0 0 26px;color:#1b223b}
.login-intro h1 span{display:inline-block;background:linear-gradient(105deg,#6550cf 10%,#8160df 75%,#526de1);background-clip:text;-webkit-background-clip:text;color:transparent;padding-bottom:.1em}
.login-intro>p:last-child{font-size:15px;max-width:365px;color:#767c91;line-height:1.85;margin:0}
.portal-login-page .login-card{position:relative;padding:36px 38px 26px;margin:0;background:linear-gradient(145deg,#fffffffa,#ffffffed);border:1px solid #fff;border-radius:24px;box-shadow:0 24px 70px -26px #252c5d24,0 4px 18px -8px #58558214;backdrop-filter:blur(14px)}
.login-card::before{content:"";position:absolute;inset:-1px;border-radius:25px;border:1px solid #dcd9ed80;pointer-events:none}
.login-card-symbol{display:grid;place-items:center;width:42px;height:42px;margin-bottom:24px;border:1px solid #e7e0fb;border-radius:13px;background:linear-gradient(140deg,#f2edff,#edf2ff);color:#7760d5}
.login-card-symbol svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.login-card h2{font-size:27px;line-height:1.25;letter-spacing:-.045em;font-weight:650;margin:0 0 12px}
.login-card>p{font-size:13px;line-height:1.8;color:#7a8094;margin:0 0 24px}
.portal-login-page .login-card label{font-size:12px;font-weight:650;color:#464e67;margin:22px 0 0}
.portal-login-page .login-card input:not([type=checkbox]){height:52px;background:#f9faff;border:1px solid #dfe3ee;border-radius:10px;padding:13px 15px;font-size:14px;box-shadow:0 1px 2px #1d285403;transition:border-color .2s,box-shadow .2s,background .2s}
.login-card input::placeholder{color:#a1a7b7;font-size:13px}
.portal-login-page .login-card input:focus-visible{outline:0;background:#fff;border-color:#8c7bdc;box-shadow:0 0 0 4px #8c7bdc15}
.portal-login-page .login-card .primary{height:52px;border-radius:10px;background:linear-gradient(110deg,#7156dc,#6852d7);color:#fff;font-size:14px;font-weight:600;letter-spacing:.01em;box-shadow:0 8px 20px -10px #6e52da80;margin-top:28px;transition:box-shadow .2s,transform .2s}
.portal-login-page .login-card .primary:hover{box-shadow:0 10px 24px -9px #6e52da88;transform:translateY(-1px)}
.portal-login-page .login-card .primary:focus-visible{outline:3px solid #a99ce7;outline-offset:3px}
.portal-login-page .login-card .login-recovery{text-align:center;font-size:12px;margin:23px 0 2px}
.login-recovery a{color:#7b7299;text-decoration:none;text-underline-offset:4px}
.login-recovery a:hover{color:#6852d7;text-decoration:underline}
.login-card [role=alert]{padding:12px 14px;background:#fff2f4;border:1px solid #f3dce2;border-radius:10px;color:#a32a45}
.space-scene{position:fixed;inset:88px 0 0;z-index:0;overflow:hidden;pointer-events:none;user-select:none}
.space-glow{position:absolute;width:680px;height:680px;border-radius:50%;filter:blur(12px)}
.glow-blue{top:-230px;left:-220px;background:radial-gradient(circle,#dceaff66,transparent 68%)}
.glow-violet{right:-90px;bottom:-360px;background:radial-gradient(circle,#e9e1fb99,transparent 68%)}
.space-orbit{position:absolute;stroke:#9a9bd1;stroke-width:.65;opacity:.2;will-change:transform}
.orbit-one{width:820px;height:820px;left:-310px;top:-275px;animation:zuhre-orbit-float 34s ease-in-out infinite alternate}
.orbit-two{width:510px;height:510px;right:-190px;bottom:-250px;stroke:#969cd0;opacity:.19;animation:zuhre-orbit-float 28s ease-in-out -9s infinite alternate-reverse}
.orbit-satellite{fill:#9299dc;stroke:none}
.space-constellation{position:absolute;width:580px;left:4%;bottom:5%;opacity:.15;stroke:#848fd0;stroke-width:.7;animation:zuhre-constellation-float 30s ease-in-out infinite alternate}
.space-constellation circle{fill:#8188c8;stroke:none}
.space-stars{position:absolute;left:18%;top:15%;width:2px;height:2px;background:#8c8ac9;border-radius:50%;opacity:.25;box-shadow:150px 85px #8c8ac9,320px -38px #8c8ac9,540px 140px #8c8ac9,-170px 290px #8c8ac9,50px 390px #8c8ac9,880px 20px #8c8ac9,1050px 310px #8c8ac9,700px 450px #8c8ac9}
.space-spark{position:absolute;width:25px;height:25px;background:#9297d4;opacity:.14;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 38%);animation:zuhre-constellation-float 24s ease-in-out -5s infinite alternate}
.spark-one{left:38%;top:12%}.spark-two{right:7%;top:43%;width:17px;height:17px}
@keyframes zuhre-orbit-float{from{transform:translate3d(0,0,0) rotate(-4deg)}to{transform:translate3d(15px,12px,0) rotate(4deg)}}
@keyframes zuhre-constellation-float{from{transform:translate3d(0,0,0)}to{transform:translate3d(8px,-12px,0)}}
@media(max-width:900px){.portal-login-page .portal-main{padding:40px 28px}.portal-login-page .portal-login{grid-template-columns:minmax(0,1fr) minmax(330px,1fr);gap:36px}.login-intro h1{font-size:48px}.portal-login-page .login-card{padding:30px 28px 24px}.login-card h2{font-size:24px}}
@media(max-width:700px){.portal-login-page .portal-bar{height:76px;padding:0 24px}.portal-login-page .portal-bar .brand img{width:170px;max-height:54px}.portal-login-page .portal-bar>span{display:none}.portal-login-page .portal-main{padding:36px 22px 40px}.portal-login-page .portal-login{display:flex;flex-direction:column;gap:28px;align-items:stretch;min-height:0;max-width:460px;margin:auto}.login-intro{padding:0}.login-intro .eyebrow{font-size:9px;letter-spacing:.16em;margin-bottom:18px}.login-intro h1{font-size:42px;margin-bottom:12px}.login-intro>p:last-child{font-size:13px;line-height:1.7}.portal-login-page .login-card{padding:27px 25px 24px;border-radius:20px}.login-card-symbol{width:36px;height:36px;margin-bottom:20px}.login-card h2{font-size:24px}.space-scene{inset:76px 0 0}.orbit-one{left:-470px;top:-300px;opacity:.16}.orbit-two{width:400px;right:-240px;bottom:-120px}.space-constellation{left:-170px;bottom:3%;width:450px}}
@media(prefers-reduced-motion:reduce){.space-scene *{animation:none!important;will-change:auto}.portal-login-page .login-card :is(input,.primary){transition:none}.portal-login-page .login-card .primary:hover{transform:none}}
