/* Login-only visual layer; authentication and other guest pages stay in the core. */
.login-page{--login-panel:#f8fbff;--login-line:#c9d8ed;--login-muted:#536986;--login-ink:#142b4d;position:relative;isolation:isolate;min-height:100dvh;overflow:hidden;background:#eaf1fb;color:var(--login-ink);padding:24px 32px;font-family:inherit}
[data-theme="dark"] .login-page{--login-panel:#0e1b30;--login-line:#2a4469;--login-muted:#9ab1d5;--login-ink:#edf3ff;background:#080f20}
.login-ambient{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.login-ambient span{position:absolute;inset:-25%;background:radial-gradient(ellipse at 22% 25%,#286bf82a,transparent 48%),radial-gradient(ellipse at 82% 75%,#0069ff24,transparent 45%);animation:login-nebula 26s ease-in-out infinite alternate}.login-ambient span:nth-child(2){animation-duration:34s;animation-delay:-13s;background:radial-gradient(ellipse at 70% 10%,#3187ff20,transparent 46%)}.login-ambient i{position:absolute;width:85vw;height:85vw;left:-20vw;top:-45vw;border:1px solid #4c86eb20;border-radius:50%;box-shadow:0 0 0 100px #3a7ce707,0 0 0 220px #3a7ce705;animation:login-nebula 38s ease-in-out infinite alternate-reverse}
.login-wrap{max-width:1480px;margin:auto;position:relative}.login-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.login-logo{width:220px;max-width:60%;padding:9px 14px;background:#fff;border:1px solid #d8e3f3;border-radius:15px;box-shadow:0 5px 20px #0000000c}.login-logo img{display:block;width:100%;height:auto}.login-tools{display:flex;gap:10px}.login-tools .icon-btn{border-radius:50%;color:var(--login-ink);border-color:var(--login-line);background:var(--login-panel)}
.login-panel{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);border:1px solid var(--login-line);border-radius:28px;overflow:hidden;box-shadow:0 24px 80px #00000012;background:var(--login-panel)}
.login-form-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,4vw,60px);min-width:0}.login-eyebrow{font-size:.86rem;color:var(--login-muted);margin:0 0 10px}.login-form-panel h1{font-size:clamp(1.8rem,2.5vw,2.5rem);line-height:1.7;margin:0 0 8px;font-weight:800}.login-intro{color:var(--login-muted);font-size:.88rem;line-height:1.9;margin:0 0 32px}.login-form .field{margin-bottom:22px}.login-form .label{font-size:.85rem;margin-bottom:10px;color:var(--login-ink)}.login-form .input{height:54px;border-radius:12px;border-color:var(--login-line);background:color-mix(in srgb,var(--login-panel) 88%,#6997e2);color:var(--login-ink);width:100%;font-size:.9rem}.login-form .input::placeholder{color:var(--login-muted);opacity:.8}.login-password{position:relative}.login-password .input{padding-left:48px}.login-password-toggle{position:absolute;left:8px;top:8px;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--login-muted);cursor:pointer}.login-password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6}.login-password-toggle:focus-visible{outline:2px solid #5797ff;outline-offset:2px}.login-remember{font-size:.83rem;color:var(--login-muted)}.login-submit{height:54px;border-radius:12px;display:flex;justify-content:center;gap:20px;background:linear-gradient(110deg,#2460e9,#287dff);border:1px solid #6196ff;color:white;font-weight:700;box-shadow:0 8px 24px #2366ed25}.login-submit:hover{background:#266cf2;color:#fff}.login-submit>span:last-child{font-size:1.4rem}.login-access{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.76rem;color:var(--login-muted);margin:28px 0 0}.login-access .icon{width:17px;height:17px}
.login-visual{min-width:0;background:#080f20;color:#edf3ff;position:relative;border-inline-start:1px solid var(--login-line);display:flex;flex-direction:column;justify-content:space-between;padding:36px 34px 28px;overflow:hidden}.login-copy{position:relative;z-index:2}.login-copy h2{font-size:clamp(1.55rem,2.3vw,2.4rem);line-height:1.65;margin:0;font-weight:800}.login-copy h2 span{color:#91b9ff}.login-copy p{font-size:.9rem;color:#91add6;margin-top:14px}.login-art{position:relative;height:clamp(280px,38vh,430px);flex:1;min-height:280px;max-height:430px;margin:-10px -24px -8px;pointer-events:none}.login-modules{display:flex;justify-content:space-around;gap:12px;font-size:.74rem;color:#afc6eb;position:relative;z-index:2}.login-modules span{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;flex:1}.login-modules span+span{border-inline-start:1px solid #293d5b}.login-modules .icon{width:23px;height:23px}.login-footer{margin:24px 0 4px;text-align:center;color:var(--login-muted);opacity:.65;font-size:.72rem}
@keyframes login-nebula{from{transform:translate3d(-2%,-2%,0) rotate(-6deg)}to{transform:translate3d(4%,5%,0) rotate(9deg)}}@keyframes login-float{50%{transform:translateY(-9px) rotate(1deg)}}@keyframes login-orbit{to{offset-distance:100%}}
.login-page.motion-paused *{animation-play-state:paused!important}

@media(max-width:900px){.login-page{padding:20px}.login-panel{grid-template-columns:1fr;max-width:510px;margin:auto}.login-form-panel{padding:32px}.login-visual{display:none}.login-header{max-width:510px;margin-inline:auto}.login-logo{width:190px}.login-intro{margin-bottom:26px}.login-ambient span{animation-duration:38s}}
@media(max-width:420px){.login-page{padding:16px 12px}.login-form-panel{padding:28px 22px}.login-panel{border-radius:22px}.login-header{gap:12px}.login-logo{width:170px}.login-tools{gap:6px}.login-tools .icon-btn{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.login-page *{animation:none!important}}

/* Transparent branding, procedural 3D and viewport-aware laptop layout. */
.login-page{padding:16px 28px;min-height:100dvh;overflow:visible}
.login-wrap{min-height:calc(100dvh - 32px);display:flex;flex-direction:column;gap:14px}
.login-header{margin:0;min-height:52px;flex-shrink:0}
.login-logo{width:210px;padding:0;background:none;border:0;box-shadow:none;border-radius:0}
[data-theme="dark"] .login-logo img{filter:brightness(0) invert(1)}
.login-panel{flex:1;min-height:min-content;background:color-mix(in srgb,var(--login-panel) 84%,transparent)}
.login-form-panel{padding:26px clamp(26px,3.5vw,52px)}
.login-form-panel h1{font-size:clamp(1.7rem,2.4vw,2.3rem);line-height:1.5}
.login-eyebrow{margin-bottom:6px}.login-intro{margin-bottom:22px}
.login-form .field{margin-bottom:18px}.login-form .label{margin-bottom:7px}.login-form .input{height:50px}.login-submit{height:50px}.login-password-toggle{top:6px}.login-access{margin-top:20px}
.login-visual{background:transparent;padding:26px 30px 22px;color:var(--login-ink)}
.login-copy h2{font-size:clamp(1.5rem,2.2vw,2.25rem)}.login-copy h2 span{color:#669de9}.login-copy p{color:var(--login-muted);margin:8px 0 0}
.login-art{height:auto;min-height:190px;max-height:none;flex:1;margin:0 -12px;overflow:hidden}
.login-art canvas{display:block;width:100%;height:100%;position:absolute;inset:0}
.login-fallback{position:absolute;inset:12% 15%;perspective:700px}
.login-fallback i{position:absolute;inset:9%;border:12px solid #3f88e8;border-bottom-color:#123775;border-top-color:#9bc7ff;border-radius:50%;transform:rotateX(57deg) rotateZ(-32deg);opacity:.9}
.login-fallback i:nth-child(2){transform:rotateX(38deg) rotateY(51deg) rotateZ(32deg);border-color:#a8bdd9;border-bottom-color:#52739d}.login-fallback i:nth-child(3){inset:18%;transform:rotateX(65deg) rotateZ(35deg);border-width:8px}
.login-art.scene-ready .login-fallback{display:none}.login-art:not(.scene-ready) canvas{visibility:hidden}
.login-modules{color:var(--login-muted);font-size:.7rem}.login-modules span{gap:6px}.login-modules .icon{width:20px;height:20px}
.login-footer{margin:0;min-height:24px;display:flex;align-items:center;justify-content:center;gap:22px;flex-shrink:0;font-size:.65rem;opacity:.6;line-height:1.7}.login-footer::before,.login-footer::after{content:"";width:65px;height:1px;background:var(--login-line)}
@media(min-width:901px) and (min-height:640px){.login-page{height:100dvh}.login-wrap{height:100%;min-height:0}}
@media(min-width:901px) and (max-height:780px){.login-page{padding:12px 24px}.login-wrap{gap:10px;min-height:calc(100dvh - 24px)}.login-logo{width:178px}.login-header{min-height:44px}.login-form-panel{padding:20px 34px}.login-form-panel h1{font-size:1.8rem}.login-intro{margin-bottom:16px;font-size:.8rem}.login-form .field{margin-bottom:14px}.login-form .input,.login-submit{height:46px}.login-password-toggle{top:4px}.login-access{margin-top:14px}.login-visual{padding:22px 28px 18px}.login-copy h2{font-size:1.7rem}}
@media(max-width:900px){.login-page{padding:16px}.login-wrap{min-height:calc(100dvh - 32px)}.login-panel{flex:0 0 auto;width:100%;margin:auto}.login-header{width:100%;min-height:50px}.login-logo{width:180px}.login-form-panel{padding:28px}.login-footer{margin-top:auto;font-size:.6rem;gap:12px}.login-footer::before,.login-footer::after{width:35px}}
@media(max-width:420px){.login-page{padding:12px}.login-wrap{min-height:calc(100dvh - 24px);gap:12px}.login-form-panel{padding:24px}.login-logo{width:165px}.login-form .field{margin-bottom:16px}.login-intro{font-size:.8rem}.login-footer{gap:9px}}

.login-ribbon-image{position:absolute;inset:6px 0;background:url("./orbital-ribbons-transparent.png") center/contain no-repeat}
@media(max-width:900px){.login-ribbon-image{background-image:none}}

/* Restore the approved orbital light trails around the premium cutout. */
.login-orbit{position:absolute;left:4%;right:4%;top:23%;height:48%;border:1px solid #74a9ff55;border-radius:50%;transform:rotate(-23deg)}.login-orbit i{position:absolute;width:9px;height:9px;border-radius:50%;background:#8bceff;box-shadow:0 0 8px #368eff,0 0 18px #2f8dff;offset-path:ellipse(50% 50% at 50% 50%);offset-distance:0%;animation:login-orbit 15s linear infinite}.orbit-two{left:12%;right:12%;top:7%;height:80%;transform:rotate(29deg);border-color:#5376a83d}.orbit-two i{width:7px;height:7px;background:#d8eaff;animation-duration:21s;animation-delay:-7s;animation-direction:reverse}.orbit-three{left:0;right:0;top:36%;height:35%;transform:rotate(9deg);border-color:#5787cc30}.orbit-three i{width:5px;height:5px;animation-duration:26s;animation-delay:-17s}
.login-visual{isolation:isolate;background:radial-gradient(ellipse at 35% 70%,#1552b514,transparent 62%)}
[data-theme="dark"] .login-visual{background:radial-gradient(ellipse at 38% 62%,#1255bd28,transparent 65%),linear-gradient(140deg,#06101f,#08172c 60%,#071222)}
.login-visual::before{content:"";position:absolute;z-index:-1;inset:-35% 12% 18% -35%;border:1px solid #3c7af522;border-radius:50%;transform:rotate(-28deg);pointer-events:none}
.login-art::before{content:"";position:absolute;left:12%;right:12%;bottom:3%;height:17%;background:radial-gradient(ellipse,#63adff45 0%,#1168f534 35%,transparent 70%);filter:blur(12px)}
.login-ribbon-image{inset:5% 4% 7%;animation:login-float 10s ease-in-out infinite}
.login-orbit{left:6%;right:6%;top:22%;height:48%;border-color:#74a9ff70;z-index:1}
.orbit-two{left:18%;right:18%;top:9%;height:76%;border-color:#5376a838}
.orbit-three{left:3%;right:3%;top:39%;height:35%;border-color:#5787cc60}
.login-orbit i{background:radial-gradient(circle at 35% 30%,#fff,#70ccff 35%,#1676f2 72%)}
.orbit-two i{background:radial-gradient(circle at 35% 30%,white,#cbddef 35%,#5882b2 75%)}
.login-modules .icon{width:32px;height:32px;padding:6px;border:1px solid #4d8bd580;border-radius:11px;color:#88b8f4;background:#15376038;box-shadow:inset 0 0 10px #3471cc12}
@media(prefers-reduced-motion:reduce){.login-ribbon-image,.login-orbit i{animation:none!important}}

/* Orbital trails sit behind the opaque ribbon cutout. */
.login-art{isolation:isolate}.login-art::before{z-index:0}.login-orbit{z-index:1}.login-ribbon-image{z-index:2}
