.malmo-auth{--auth-bg:#08111f;--auth-panel:rgba(14,25,43,.82);--auth-text:#f6f8fc;--auth-muted:#9fb0c6;--auth-border:rgba(255,255,255,.11);--auth-accent:#2f7cff;--auth-accent-2:#55d6be;position:relative;min-height:100vh;overflow:hidden;color:var(--auth-text);background:radial-gradient(circle at 14% 18%,rgba(47,124,255,.26),transparent 28%),radial-gradient(circle at 78% 78%,rgba(85,214,190,.15),transparent 30%),linear-gradient(135deg,#07101d 0%,#0a1728 50%,#08111f 100%)}
.auth-grid{position:absolute;inset:0;opacity:.32;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,#000,transparent 92%);pointer-events:none}
.auth-orb{position:absolute;border-radius:999px;filter:blur(10px);opacity:.6;animation:authFloat 8s ease-in-out infinite;pointer-events:none}.auth-orb-one{width:180px;height:180px;left:4%;top:15%;background:rgba(47,124,255,.28)}.auth-orb-two{width:140px;height:140px;right:10%;bottom:8%;background:rgba(85,214,190,.18);animation-delay:-3s}@keyframes authFloat{50%{transform:translate(16px,-20px)}}
.auth-layout{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:1.25fr .75fr}.auth-brand-side{padding:48px 56px 34px;display:flex;flex-direction:column;justify-content:space-between}.auth-brand{display:flex;align-items:center;gap:14px}.auth-brand-mark{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;font-weight:800;font-size:22px;color:#fff;background:linear-gradient(135deg,var(--auth-accent),#6b9cff);box-shadow:0 14px 34px rgba(47,124,255,.35)}.auth-brand-name{font-size:25px;font-weight:800;letter-spacing:-.5px}.auth-brand-sub{font-size:13px;color:var(--auth-muted);margin-top:4px}
.auth-hero{max-width:720px;padding:70px 0}.auth-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(47,124,255,.3);background:rgba(47,124,255,.1);color:#bcd2ff;border-radius:999px;font-size:13px;font-weight:700}.auth-badge span{width:7px;height:7px;border-radius:50%;background:var(--auth-accent-2)}.auth-hero h1{font-size:clamp(42px,6vw,74px);line-height:1.02;letter-spacing:-2.4px;margin:24px 0 18px;max-width:760px}.auth-hero>p{color:var(--auth-muted);font-size:18px;line-height:1.65;max-width:650px;margin:0}.auth-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:38px;max-width:690px}.auth-features>div{background:rgba(255,255,255,.045);border:1px solid var(--auth-border);padding:18px;border-radius:18px;backdrop-filter:blur(16px)}.auth-features small{display:block;color:var(--auth-muted);font-size:12px;margin-bottom:7px}.auth-features strong{font-size:15px}.auth-footer{display:flex;flex-wrap:wrap;gap:18px;color:var(--auth-muted);font-size:12px}
.auth-login-side{display:flex;align-items:center;padding:34px 42px 34px 20px}.auth-card{width:100%;max-width:480px;margin-left:auto;border:1px solid var(--auth-border);background:var(--auth-panel);backdrop-filter:blur(24px);border-radius:28px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.34)}.auth-card-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:29px}.auth-card-top>div{display:flex;flex-direction:column;gap:4px}.auth-card-top strong{font-size:17px}.auth-portal-label{color:var(--auth-muted);font-size:11px;font-weight:750;letter-spacing:1.2px;text-transform:uppercase}.auth-theme{width:42px;height:42px;border:1px solid var(--auth-border);background:rgba(255,255,255,.05);color:var(--auth-text);border-radius:14px;cursor:pointer}.auth-welcome h2{font-size:31px;letter-spacing:-1px;margin:0 0 9px}.auth-welcome p{color:var(--auth-muted);font-size:14px;line-height:1.6;margin:0 0 25px}
.auth-field{margin-bottom:17px}.auth-field label{display:block;margin-bottom:8px;font-size:13px;font-weight:700}.auth-field input{width:100%;height:50px;border:1px solid var(--auth-border);background:rgba(255,255,255,.055);color:var(--auth-text);border-radius:14px;padding:0 15px;outline:none}.auth-field input::placeholder{color:#7f91a8}.auth-field input:focus{border-color:rgba(47,124,255,.8);box-shadow:0 0 0 4px rgba(47,124,255,.12)}.auth-password{position:relative}.auth-password input{padding-right:68px}.auth-password button{position:absolute;right:8px;top:8px;height:34px;padding:0 10px;border:0;border-radius:9px;color:#b8c6d8;background:rgba(255,255,255,.06);cursor:pointer;font-size:11px;font-weight:750}.auth-options{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 21px}.auth-options label{display:flex;align-items:center;gap:7px;color:var(--auth-muted);font-size:12px}.auth-options input{accent-color:var(--auth-accent)}.auth-options button{border:0;background:none;color:#9dc0ff;cursor:pointer;font-size:12px}.auth-submit{width:100%;height:51px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--auth-accent),#2468d9);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 14px 32px rgba(47,124,255,.26)}.auth-submit:hover{filter:brightness(1.08)}.auth-submit:disabled{opacity:.7;cursor:wait}
.malmo-auth .login-error{display:none;margin:0 0 16px;padding:12px 13px;border:1px solid rgba(255,107,107,.35);border-radius:12px;color:#ffd1d1;background:rgba(255,107,107,.09);font-size:12px}.malmo-auth .login-error.show{display:block}.malmo-auth .login-error.info{border-color:rgba(47,124,255,.35);color:#cfe0ff;background:rgba(47,124,255,.09)}.auth-tenant-note{display:flex;gap:10px;margin-top:17px;padding:13px;border:1px solid rgba(85,214,190,.18);border-radius:14px;background:rgba(85,214,190,.06)}.auth-tenant-note>span{width:25px;height:25px;flex:0 0 25px;display:grid;place-items:center;border-radius:8px;color:#8ce8d5;background:rgba(85,214,190,.12);font-size:12px;font-weight:900}.auth-tenant-note p{margin:0;color:var(--auth-muted);font-size:10.5px;line-height:1.5}.auth-tenant-note strong{display:block;color:#d8fff6;font-size:11px}.auth-status{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:18px;border-top:1px solid var(--auth-border)}.auth-status>div{display:flex;align-items:center;gap:10px}.auth-status i{width:8px;height:8px;border-radius:50%;background:#31d0aa;box-shadow:0 0 0 6px rgba(49,208,170,.09)}.auth-status p{margin:0}.auth-status strong,.auth-status small{display:block}.auth-status strong{font-size:11px}.auth-status small{color:var(--auth-muted);font-size:9px;margin-top:3px}.auth-status>span{color:#7fe1c9;font-size:10px;font-weight:800}
body.malmo-auth-light .malmo-auth{--auth-panel:rgba(255,255,255,.82);--auth-text:#10223e;--auth-muted:#61728b;--auth-border:rgba(16,34,62,.12);background:radial-gradient(circle at 14% 18%,rgba(47,124,255,.16),transparent 28%),radial-gradient(circle at 78% 78%,rgba(85,214,190,.16),transparent 30%),linear-gradient(135deg,#eef4ff,#f7fbff 55%,#effaf8)}body.malmo-auth-light .auth-badge{color:#2459a8}body.malmo-auth-light .auth-field input,body.malmo-auth-light .auth-theme{background:rgba(255,255,255,.62)}body.malmo-auth-light .auth-tenant-note strong{color:#176d5a}body.malmo-auth-light .malmo-auth .login-error{color:#9a3340}
@media(max-width:980px){.auth-layout{grid-template-columns:1fr}.auth-brand-side{padding:30px 28px 10px}.auth-hero{padding:54px 0 22px}.auth-hero h1{font-size:clamp(38px,8vw,64px)}.auth-login-side{padding:20px 28px 42px}.auth-card{max-width:620px;margin:auto}.auth-footer{display:none}}
@media(max-width:620px){.auth-brand-side{padding:22px 18px 4px}.auth-brand-mark{width:42px;height:42px;border-radius:14px}.auth-brand-name{font-size:21px}.auth-brand-sub{font-size:10px}.auth-hero{padding:35px 0 14px}.auth-hero h1{font-size:36px;letter-spacing:-1.6px}.auth-hero>p{font-size:14px}.auth-features{grid-template-columns:1fr 1fr;margin-top:22px}.auth-features>div{padding:13px}.auth-features>div:nth-child(3){display:none}.auth-login-side{padding:18px}.auth-card{padding:22px;border-radius:22px}.auth-welcome h2{font-size:27px}.auth-options{align-items:flex-start}.auth-options label{max-width:150px}}
@media(prefers-reduced-motion:reduce){.auth-orb{animation:none}}
