/* Presentation only: the native Roundcube form, session and 2FA remain unchanged. */
html body.nd-app .nd-login{min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--np-bg);color:var(--np-ink);position:relative;isolation:isolate;background-image:var(--np-image);background-size:cover;background-position:center}
html body.nd-app .nd-login:before,.np-opening:before{content:'';position:absolute;inset:0;background:var(--np-bg);opacity:var(--np-overlay);z-index:-1}
html body.nd-app .np-login-layout{width:100%;max-width:970px;display:grid;grid-template-columns:1fr minmax(280px,375px);gap:70px;align-items:center}
html body.nd-app .np-story{max-width:440px;text-align:left;color:var(--np-ink)}
html body.nd-app .np-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--np-accent);font-weight:700}
html body.nd-app .np-story h2{font-size:43px;line-height:1.15;letter-spacing:-1px;margin:18px 0;color:var(--np-ink);overflow-wrap:anywhere}
html body.nd-app .np-story p{font-size:14px;line-height:1.8;color:var(--np-ink)}
.np-rule{height:3px;width:42px;background:var(--np-accent);margin:28px 0}
html body.nd-app .nd-login .nd-login-card{width:100%;max-width:none;margin:0;padding:30px;background:var(--np-surface)!important;color:var(--np-ink)!important;border:1px solid color-mix(in srgb,var(--np-ink) 12%,transparent)!important;border-radius:19px;box-shadow:0 18px 50px #00000012;text-align:left}
html body.nd-app .nd-login .nd-login-logo{height:var(--np-logo-size);display:flex;align-items:center;justify-content:center;margin-bottom:15px}
html body.nd-app .nd-login .nd-login-logo #logo{content:normal!important;width:100%!important;max-width:180px!important;height:100%!important;max-height:none!important;object-fit:contain!important;margin:0!important}
html body.nd-app .nd-login .nd-login-brand-name{font-size:11px;text-align:center;margin:0 0 16px;color:var(--np-ink)}
html body.nd-app .nd-login h1{font-size:25px;letter-spacing:-.6px;line-height:1.25;margin:19px 0 8px;color:var(--np-ink);overflow-wrap:anywhere}
html body.nd-app .nd-login p,html body.nd-app .nd-login footer{font-size:12px;color:var(--np-ink);overflow-wrap:anywhere}
html body.nd-app .nd-login footer{font-size:11px;margin-top:19px;text-align:center}
html body.nd-app .nd-login :is(input[type=text],input[type=email],input[type=password]){background:color-mix(in srgb,var(--np-bg) 45%,var(--np-surface))!important;color:var(--np-ink)!important;border-color:color-mix(in srgb,var(--np-ink) 15%,transparent)!important}
html body.nd-app .nd-login :is(button.mainaction,input[type=submit],.nd-login-form button){background:var(--np-accent)!important;color:var(--np-on-accent)!important;border-color:var(--np-accent)!important}
html.np-card body.nd-app .np-login-layout{display:block;max-width:375px}
html.np-card body.nd-app .np-story{display:none}
html.np-card body.nd-app .nd-login-card{text-align:center}
.np-opening[hidden]{display:none!important}
.np-opening{position:fixed;inset:0;z-index:100000;background:var(--np-bg);color:var(--np-ink);display:grid;place-items:center;padding:30px;text-align:center;isolation:isolate;background-image:var(--np-image);background-size:cover;background-position:center;overflow:auto}
.np-opening-inner{max-width:450px;width:100%;margin:auto}
.np-opening-logo{height:calc(var(--np-logo-size) * 1.4);margin:0 auto 28px;display:flex;justify-content:center}
.np-opening-logo img{height:100%;width:100%;max-width:180px;object-fit:contain}
.np-opening h1{font-size:30px;line-height:1.25;letter-spacing:-.7px;overflow-wrap:anywhere;margin:0 0 12px;color:var(--np-ink)}
.np-opening p{font-size:13px;color:var(--np-ink);margin:0;overflow-wrap:anywhere}
.np-opening footer{font-size:11px;margin-top:60px;overflow-wrap:anywhere}
.np-opening button{margin-top:18px;border:1px solid color-mix(in srgb,var(--np-ink) 20%,transparent);background:var(--np-surface);color:var(--np-ink);border-radius:9px;padding:8px 14px;font:inherit}
.np-loader{display:flex;gap:6px;justify-content:center;margin:32px auto 15px}.np-loader i{width:6px;height:6px;border-radius:50%;background:var(--np-accent);animation:np-pulse 1.2s infinite}.np-loader i:nth-child(2){animation-delay:.15s}.np-loader i:nth-child(3){animation-delay:.3s}
@keyframes np-pulse{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.np-loader i{animation:none}}
@media(max-width:760px){html body.nd-app .nd-login{padding:25px 18px}html body.nd-app .np-login-layout{display:block;max-width:375px}html body.nd-app .np-story{display:none}html body.nd-app .nd-login .nd-login-card{padding:26px 22px}.np-opening h1{font-size:26px}}

html body.nd-app .nd-login #login-form td.nd-password-cell{position:relative}
html body.nd-app .nd-login #login-form #rcmloginpwd{padding-right:48px!important}
html body.nd-app .nd-login .nd-login-form button.nd-password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:36px!important;height:36px!important;min-width:36px;padding:0!important;margin:0!important;border:0!important;border-radius:8px;background:transparent!important;color:var(--np-ink)!important;box-shadow:none!important;cursor:pointer}
html body.nd-app .nd-login .nd-login-form button.nd-password-toggle:hover,html body.nd-app .nd-login .nd-login-form button.nd-password-toggle:focus-visible{background:color-mix(in srgb,var(--np-ink) 9%,transparent)!important}
html body.nd-app .nd-login .nd-login-form button.nd-password-toggle:focus-visible{outline:2px solid var(--np-accent);outline-offset:2px}
.nd-password-toggle .nd-eye-slash{display:none}
.nd-password-toggle[aria-pressed="true"] .nd-eye-slash{display:block}
