@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap");
:root { --tenant-primary:#0b1628; --tenant-accent:#2da8ff; --teal:#28d7c2; --violet:#8b5cf6; font-family:Montserrat,"Segoe UI",sans-serif; color:#111c30; }
* { box-sizing:border-box; } [hidden] { display:none!important; }
body { margin:0; min-width:320px; min-height:100vh; background:#f7f9fc; }
.login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(430px,1.05fr) minmax(460px,.95fr); }
.login-brand { position:relative; isolation:isolate; display:flex; flex-direction:column; min-height:100vh; overflow:hidden; padding:44px clamp(42px,6vw,88px); color:#fff; background:linear-gradient(145deg,#06101e 0%,var(--tenant-primary) 52%,#142957 100%); }
.login-brand::before { content:""; position:absolute; z-index:-1; width:520px; height:520px; top:-260px; right:-210px; border-radius:50%; background:radial-gradient(circle,rgba(139,92,246,.3),transparent 66%); }
.brand-ambient { position:absolute; z-index:-1; width:440px; height:440px; left:-220px; bottom:-220px; border-radius:50%; background:radial-gradient(circle,rgba(40,215,194,.2),transparent 66%); }
.login-wordmark { display:flex; align-items:center; gap:15px; font-size:1.55rem; font-weight:750; letter-spacing:-.04em; }
.login-wordmark img { width:58px; height:58px; object-fit:contain; filter:drop-shadow(0 0 20px rgba(45,168,255,.3)); }
.brand-message { position:relative; z-index:2; max-width:590px; margin:auto 0; padding:70px 0; }
.brand-eyebrow,.login-kicker { color:var(--teal); font-size:.68rem; font-weight:750; letter-spacing:.17em; text-transform:uppercase; }
.brand-message h1 { margin:18px 0 24px; font-size:clamp(2.8rem,5vw,5.25rem); line-height:1.02; letter-spacing:-.06em; }
.brand-message h1 span { background:linear-gradient(90deg,var(--teal),var(--tenant-accent),var(--violet)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.brand-message p { max-width:520px; margin:0; color:#aebdd2; font-size:1rem; line-height:1.75; }
.assurance-row { position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:28px; color:#9fb0c8; font-size:.68rem; font-weight:600; }
.assurance-row span { display:flex; align-items:center; gap:8px; }.assurance-row i { width:8px; height:8px; border-radius:50%; background:var(--teal); box-shadow:0 0 12px currentColor; }
.network-art { position:absolute; z-index:0; right:-130px; bottom:-70px; width:min(72vw,850px); opacity:.44; }.network-art path { fill:none; stroke:url(#networkGradient); stroke-width:1.2; }.network-art circle { fill:var(--teal); filter:drop-shadow(0 0 8px var(--tenant-accent)); }
.login-access { display:flex; flex-direction:column; justify-content:center; padding:40px clamp(28px,7vw,110px); background:radial-gradient(circle at 100% 0%,rgba(139,92,246,.08),transparent 27rem),#f8fafc; }
.login-card { width:min(460px,100%); margin:auto; padding:42px; border:1px solid rgba(22,37,61,.1); border-radius:24px; background:rgba(255,255,255,.94); box-shadow:0 24px 70px rgba(12,25,48,.11); }
.login-card header h2 { margin:9px 0 8px; font-size:1.72rem; letter-spacing:-.04em; }.login-card header p,.mfa-form p { margin:0 0 28px; color:#718097; font-size:.84rem; }
#login-form { display:grid; }.login-card label { margin:0 0 7px; color:#2c3b52; font-size:.72rem; font-weight:700; }.login-control { display:flex; align-items:center; min-height:48px; margin-bottom:18px; border:1px solid #cbd5e1; border-radius:11px; background:#fff; transition:.18s; }.login-control:focus-within { border-color:var(--tenant-accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--tenant-accent) 12%,transparent); }.login-control>span { width:42px; color:var(--tenant-accent); text-align:center; }.login-control input { width:100%; min-width:0; border:0; outline:0; color:#111c30; background:transparent; font:inherit; font-size:.84rem; }.login-control button { margin-right:9px; border:0; color:#718097; background:none; cursor:pointer; font-size:.68rem; font-weight:700; }
.login-options { display:flex; justify-content:space-between; gap:12px; margin:-2px 0 22px; color:#66758f; font-size:.69rem; }.login-options label,.remember-device { display:flex; align-items:center; gap:7px; margin:0!important; font-weight:500!important; }.login-options input,.remember-device input { accent-color:var(--violet); }.login-options a { color:#526c8e; text-decoration:none; font-weight:650; }
.login-primary,.entra-button { width:100%; min-height:48px; display:flex; align-items:center; justify-content:center; gap:10px; border:0; border-radius:11px; cursor:pointer; font:inherit; font-size:.79rem; font-weight:750; text-decoration:none; }.login-primary { justify-content:space-between; padding:0 19px; color:#fff; background:linear-gradient(120deg,var(--teal),var(--tenant-accent) 46%,var(--violet)); box-shadow:0 12px 28px rgba(79,109,245,.22); }.login-primary:disabled { opacity:.6; cursor:wait; }.login-primary b { font-size:1.1rem; }.login-divider { display:flex; align-items:center; gap:12px; margin:25px 0 17px; color:#8a98ac; font-size:.62rem; }.login-divider::before,.login-divider::after { content:""; flex:1; height:1px; background:#e2e8f1; }.entra-button { color:#24334d; border:1px solid #d4dce7; background:#fff; }.entra-button:hover { border-color:#aab7c9; background:#f9fbfd; }.microsoft-mark { display:grid; grid-template-columns:repeat(2,7px); gap:1px; }.microsoft-mark i:nth-child(1){background:#f35325}.microsoft-mark i:nth-child(2){background:#81bc06}.microsoft-mark i:nth-child(3){background:#05a6f0}.microsoft-mark i:nth-child(4){background:#ffba08}.microsoft-mark i{width:7px;height:7px}.sso-section>p { margin:10px 0 0; color:#8996a9; font-size:.59rem; text-align:center; }
.login-error { margin:0 0 14px!important; padding:10px 12px; border-radius:9px; color:#a51f39!important; background:rgba(220,70,98,.08); font-size:.68rem!important; line-height:1.45; }.mfa-icon { display:grid; width:48px; height:48px; margin-bottom:18px; place-items:center; border-radius:14px; color:#fff; background:linear-gradient(135deg,var(--teal),var(--violet)); }.login-card h3 { margin:0 0 8px; font-size:1.25rem; }.mfa-code { width:100%; min-height:54px; margin-bottom:14px; border:1px solid #cbd5e1; border-radius:11px; outline:0; font:700 1.4rem Montserrat; letter-spacing:.35em; text-align:center; }.mfa-code:focus { border-color:var(--tenant-accent); box-shadow:0 0 0 4px rgba(45,168,255,.1); }.remember-device { margin:0 0 18px!important; }.login-back { width:100%; margin-top:12px; border:0; color:#66758f; background:none; cursor:pointer; font:650 .7rem Montserrat; }
.login-access footer { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 18px; color:#99a5b6; font-size:.58rem; }.login-access footer a{color:#718097;text-decoration:none}.login-access footer a:hover{color:var(--tenant-accent)}
@media(max-width:900px){.login-shell{display:block}.login-brand{min-height:310px;padding:28px}.brand-message{padding:45px 0 28px}.brand-message h1{font-size:2.6rem}.assurance-row{display:none}.login-access{min-height:calc(100vh - 310px);padding:28px 18px}.network-art{opacity:.25}}
@media(max-width:520px){.login-card{padding:28px 22px;border-radius:18px}.login-brand{min-height:270px}.brand-message p{display:none}.brand-message h1{font-size:2.15rem}.login-access footer{flex-wrap:wrap}}
