.login-page{min-height:100vh;margin:0;background:#f6f4fb;color:#27233a;font-family:'DM Sans',sans-serif}
.login-shell{display:flex;min-height:100vh;width:100%;overflow:hidden}
.login-visual{position:relative;flex:0 0 25%;min-width:0;min-height:100vh;overflow:hidden;background:linear-gradient(155deg,#33216d 0%,#5f3bc4 48%,#9a69ef 100%);color:#fff}
.login-illustration{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.login-illustration:not([hidden])~.login-visual-fallback{display:none}
.login-visual-fallback{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 72% 17%,#c8a9ff55 0 10%,transparent 32%),linear-gradient(155deg,#2c1c5e,#6946d3 56%,#9f70ed);z-index:0}
.login-visual-fallback:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,#170d3b8c 100%)}
.login-visual-orb{position:absolute;border-radius:50%;filter:blur(1px);background:#d8c4ff3b;border:1px solid #fff3;box-shadow:0 0 60px #fff2}.login-visual-orb-one{width:190px;height:190px;top:15%;right:-74px}.login-visual-orb-two{width:110px;height:110px;top:47%;left:-48px;background:#1d0d553d}
.login-wave{position:absolute;left:17%;right:17%;top:36%;height:116px;display:flex;align-items:center;justify-content:center;gap:7px;z-index:1}.login-wave i{width:8px;height:35%;border-radius:99px;background:#fff;opacity:.74;animation:login-wave 1.25s ease-in-out infinite alternate}.login-wave i:nth-child(2){height:63%;animation-delay:.12s}.login-wave i:nth-child(3){height:88%;animation-delay:.24s}.login-wave i:nth-child(4){height:48%;animation-delay:.36s}.login-wave i:nth-child(5){height:76%;animation-delay:.48s}.login-wave i:nth-child(6){height:54%;animation-delay:.6s}.login-wave i:nth-child(7){height:31%;animation-delay:.72s}@keyframes login-wave{to{transform:scaleY(.55);opacity:.42}}
.login-visual-fallback strong{position:absolute;left:17%;bottom:25%;z-index:1;font:700 clamp(20px,2.2vw,31px)/1.05 'Space Grotesk';letter-spacing:-.8px}.login-visual-fallback small{position:absolute;left:17%;right:15%;bottom:17%;z-index:1;color:#eee8ffcc;font-size:11px;line-height:1.5}
.login-visual-caption{position:absolute;left:17%;right:14%;top:8%;z-index:2;display:grid;gap:7px}.login-visual-caption span{font-size:10px;letter-spacing:.2em;font-weight:800;color:#e5d9ff}.login-visual-caption b{font:600 14px/1.2 'Space Grotesk';color:#fff}
.login-card{display:flex;flex:1;flex-direction:column;justify-content:center;width:auto;min-width:0;padding:clamp(30px,7vw,96px);background:#fff}.login-brand{display:flex;align-items:center;gap:11px;margin:0 0 34px}.login-brand .brand-logo-image{display:block;width:auto;max-width:320px;height:80px;object-fit:contain;object-position:left center}.login-brand strong{font:700 17px 'Space Grotesk';color:#342c55}.login-card .eyebrow{margin:0 0 9px;color:#7456da;font-size:10px;font-weight:800;letter-spacing:.16em}.login-card h1{margin:0;color:#29233c;font:700 clamp(26px,3vw,36px)/1.08 'Space Grotesk';letter-spacing:-1px}.login-card .intro{max-width:470px;margin:10px 0 24px;color:#858093;font-size:13px;line-height:1.55}.login-form{width:min(440px,100%)}.login-form label{display:block;margin-top:16px;color:#625c70;font-size:11px;font-weight:700}.login-form label span{display:block}.login-form input{display:block;width:100%;height:46px;box-sizing:border-box;margin-top:7px;padding:0 13px;border:1px solid #dedbe8;border-radius:10px;outline:0;background:#fff;color:#332e43;font:500 13px 'DM Sans';transition:border-color .18s,box-shadow .18s}.login-form input:focus{border-color:#a894ec;box-shadow:0 0 0 4px #7655dc15}.login-form .primary-button{width:100%;height:46px;margin-top:25px}.login-error{display:none;width:min(440px,100%);box-sizing:border-box;margin-top:15px;padding:11px 12px;border-radius:9px;background:#fff0ef;color:#c54f4c;font-size:11px}.login-error.show{display:block}.login-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;width:min(440px,100%);margin-top:22px}.login-help{margin:0;color:#9d98a9;font-size:10px}.login-footer a{color:#6c4bd4;font-size:11px;font-weight:700;text-decoration:none}.login-footer a:hover{text-decoration:underline}
@media(max-width:850px){.login-shell{display:block;overflow:visible}.login-visual{min-width:0;width:100%;height:230px;min-height:230px}.login-visual-caption{top:25px;left:7%;right:7%}.login-wave{top:56px;left:48%;right:12%;height:80px}.login-visual-fallback strong{left:7%;bottom:29%;font-size:24px}.login-visual-fallback small{left:7%;right:35%;bottom:13%}.login-card{min-height:calc(100vh - 230px);padding:36px max(7%,24px) 46px}.login-brand{margin-bottom:27px}}
@media(max-width:480px){.login-visual{height:190px;min-height:190px}.login-wave{left:52%;top:49px}.login-visual-fallback strong{bottom:27%;font-size:20px}.login-visual-fallback small{font-size:10px;right:27%;bottom:10%}.login-card{min-height:calc(100vh - 190px);padding:30px 22px 38px}.login-brand .brand-logo-image{max-width:220px;height:58px}.login-footer{align-items:flex-start;flex-direction:column;gap:9px}}
.demo-access-notice{display:grid;gap:5px;width:min(440px,100%);margin:-8px 0 20px;padding:13px 14px;border:1px solid #d9cdfb;border-radius:11px;background:#f5f1ff;color:#5c4799;font-size:11px;line-height:1.5}.demo-access-notice strong{font-size:12px;color:#4b3694}.demo-access-notice[hidden]{display:none}.dark-mode .demo-access-notice{border-color:#4d426c;background:#2b2540;color:#d5c8f4}.dark-mode .demo-access-notice strong{color:#eee8ff}
.login-card{position:relative}.login-theme-toggle{position:absolute;top:22px;right:clamp(22px,4vw,54px);display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 11px;border:1px solid #ded9eb;border-radius:9px;background:#fff;color:#6650bd;cursor:pointer;font:700 10px 'DM Sans';transition:background .18s,border-color .18s,color .18s}.login-theme-toggle:hover{border-color:#b9a8ed;background:#f7f4ff}.login-theme-toggle:first-letter{font-size:15px}.dark-mode.login-page{background:#101019;color:#f3f0fb}.dark-mode .login-card{background:#181824}.dark-mode .login-card h1{color:#f4f1fb}.dark-mode .login-card .eyebrow{color:#b09bff}.dark-mode .login-card .intro{color:#b2adbd}.dark-mode .login-brand strong{color:#f2effa}.dark-mode .login-form label{color:#c7c1d1}.dark-mode .login-form input{border-color:#48445a;background:#272636;color:#f5f2fb}.dark-mode .login-form input::placeholder{color:#9690a5}.dark-mode .login-form input:focus{border-color:#9d84ff;box-shadow:0 0 0 4px #9b82ff25}.dark-mode .login-footer{border-color:#3e3a4e}.dark-mode .login-help{color:#aaa4b6}.dark-mode .login-footer a{color:#baa7ff}.dark-mode .login-error{background:#42252c;color:#ffb7bd}.dark-mode .login-theme-toggle{border-color:#4b4660;background:#292638;color:#ded3ff}.dark-mode .login-theme-toggle:hover{background:#37304f;border-color:#7764ae}@media(max-width:480px){.login-theme-toggle{top:15px;right:16px;padding:0 9px}.login-theme-toggle span{display:none}}
