/**
 * NowMail Login v1.0.0 — compatible with Elastic (without altering its files).
 * Styles only activate after JS has successfully found the native login form.
 * If enhancement fails, Roundcube's untouched login remains visible.
 */
body.task-login.nm-login-ready {
  --nm-navy:#10283f; --nm-navy-deep:#0b2034;
  --nm-blue:#0788df; --nm-accent:#37beff;
  --nm-text:#17283d; --nm-muted:#66788e; --nm-line:#dce5ef;
  background:#eef4fb url('../images/bg-ice-now.png') center center / cover fixed no-repeat !important;
  color:var(--nm-text);
}
body.task-login.nm-login-ready #layout {
  display:block !important; width:100% !important; min-height:100vh !important;
  min-height:100dvh !important; max-width:none !important;
  margin:0 !important; padding:0 !important; background:transparent !important;
}
body.task-login.nm-login-ready #layout-content {
  display:flex !important; align-items:center !important; justify-content:center !important;
  width:100% !important; min-height:100vh !important; min-height:100dvh !important;
  max-width:none !important; box-sizing:border-box !important;
  margin:0 !important; padding:40px 24px !important;
  background:transparent !important; position:relative !important; inset:auto !important;
  text-align:left !important; overflow:visible !important;
}
body.task-login.nm-login-ready #layout-content > .nm-original-logo,
body.task-login.nm-login-ready #layout-content > #logo { display:none !important; }
body.task-login.nm-login-ready .nm-login-card {
  display:grid; grid-template-columns:minmax(0, 45fr) minmax(0, 55fr);
  width:min(1120px,100%); min-height:610px;
  border-radius:28px; overflow:hidden; background:white;
  box-shadow:0 25px 75px rgba(14,34,65,.22),0 3px 20px rgba(14,34,65,.09);
}
/* Brand panel */
body.task-login.nm-login-ready .nm-login-brand {
  background:linear-gradient(150deg,#0b2945,#0b2034 75%);
  color:white; min-width:0; padding:52px 54px 30px;
  display:flex; flex-direction:column; position:relative; isolation:isolate; overflow:hidden;
}
body.task-login.nm-login-ready .nm-login-brand::after {
  content:""; position:absolute; width:320px; height:320px; border-radius:50%;
  background:radial-gradient(circle,rgba(23,153,235,.15),transparent 70%);
  right:-165px; bottom:-140px; pointer-events:none; z-index:-1;
}
body.task-login.nm-login-ready .nm-brand-logo {width:min(335px,100%);height:auto;display:block;object-fit:contain;}
body.task-login.nm-login-ready .nm-brand-by {margin:3px 0 0 64px;font-size:16px;color:#c6dbea;}
body.task-login.nm-login-ready .nm-brand-main {flex:1;display:flex;flex-direction:column;justify-content:center;padding-top:30px;}
body.task-login.nm-login-ready .nm-brand-main h2 {
  font-size:clamp(31px,3vw,44px);font-weight:750;line-height:1.18;
  letter-spacing:-.8px;color:white;margin:0;max-width:360px;
}
body.task-login.nm-login-ready .nm-brand-accent {height:5px;width:72px;border-radius:6px;margin-top:28px;background:var(--nm-accent);}
body.task-login.nm-login-ready .nm-brand-art {position:relative;width:295px;height:185px;max-width:90%;margin:38px auto 0;}
body.task-login.nm-login-ready .nm-brand-art-back,
body.task-login.nm-login-ready .nm-brand-art-middle,
body.task-login.nm-login-ready .nm-brand-art-envelope {position:absolute;border-radius:23px;}
body.task-login.nm-login-ready .nm-brand-art-back {inset:36px 12px 8px;background:#174d81;transform:rotate(-18deg);opacity:.68;}
body.task-login.nm-login-ready .nm-brand-art-middle {inset:40px 8px 4px;background:#21629c;transform:rotate(10deg);opacity:.47;}
body.task-login.nm-login-ready .nm-brand-art-envelope {
  inset:21px 45px 12px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(155deg,#73d0ff,#0b91e9);transform:rotate(-7deg);
  box-shadow:0 15px 33px rgba(0,0,0,.21);
}
body.task-login.nm-login-ready .nm-art-mail {width:102px;height:102px; background:white;
  -webkit-mask:url('../icons/mail.svg') center / contain no-repeat;
  mask:url('../icons/mail.svg') center / contain no-repeat;
}
body.task-login.nm-login-ready .nm-brand-footer {font-size:12px;color:#8ba9c1;margin-top:auto;padding-top:15px;}
/* Right form panel */
body.task-login.nm-login-ready .nm-login-panel {background:white;display:flex;align-items:center;justify-content:center;padding:55px 65px;min-width:0;}
body.task-login.nm-login-ready .nm-login-panel-inner {width:100%;max-width:440px;min-width:0;}
body.task-login.nm-login-ready .nm-login-heading {margin-bottom:35px;}
body.task-login.nm-login-ready .nm-login-heading h2 {font-size:clamp(33px,3.2vw,43px);font-weight:750;color:var(--nm-text);line-height:1.2;margin:0 0 10px;letter-spacing:-.9px;}
body.task-login.nm-login-ready .nm-login-heading p {font-size:17px;color:var(--nm-muted);margin:0;}
/* Existing Roundcube form, no cloned inputs or action changed */
body.task-login.nm-login-ready #login-form {
  position:static !important; left:auto !important; top:auto !important; right:auto !important;
  margin:0 !important; padding:0 !important; transform:none !important;
  width:100% !important; min-width:0 !important; max-width:none !important;
  text-align:left !important; background:transparent !important; box-shadow:none !important;
}
body.task-login.nm-login-ready #login-form table {width:100% !important;margin:0 !important;border-collapse:separate;border-spacing:0 15px;}
body.task-login.nm-login-ready #login-form tr,
body.task-login.nm-login-ready #login-form td {max-width:100%;}
body.task-login.nm-login-ready #login-form input[type="text"],
body.task-login.nm-login-ready #login-form input[type="email"],
body.task-login.nm-login-ready #login-form input[type="password"],
body.task-login.nm-login-ready #login-form select {
  box-sizing:border-box !important; width:100% !important;max-width:100% !important;
  min-height:53px !important;height:auto !important; padding:12px 16px !important;
  border:1px solid var(--nm-line) !important;border-radius:11px !important;
  background-color:#fff !important;color:var(--nm-text) !important;
  font-size:15px !important;box-shadow:none !important;
}
body.task-login.nm-login-ready #login-form input:focus,
body.task-login.nm-login-ready #login-form select:focus {
  outline:0 !important; border-color:#3289cc !important;
  box-shadow:0 0 0 3px rgba(55,134,194,.15) !important;
}
body.task-login.nm-login-ready #login-form input::placeholder {color:#8b9aad;}
body.task-login.nm-login-ready #login-form .input-group {width:100%;max-width:100%;}
body.task-login.nm-login-ready #login-form .input-group-text,
body.task-login.nm-login-ready #login-form .input-group-prepend .input-group-text {
  background:#f7f9fc;border-color:var(--nm-line);color:#536b84;
  min-height:53px;box-sizing:border-box;border-radius:10px 0 0 10px;
}
body.task-login.nm-login-ready #login-form .input-group input {border-radius:0 10px 10px 0 !important;}
body.task-login.nm-login-ready #login-form .nm-password-wrap {display:flex;align-items:center;flex:1 1 auto;min-width:0;position:relative;}
body.task-login.nm-login-ready #login-form .nm-password-wrap input {padding-right:48px !important;min-width:0;}
body.task-login.nm-login-ready .nm-password-toggle {
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border:0;background:transparent;border-radius:8px;color:#5e7086;cursor:pointer;z-index:1;
}
body.task-login.nm-login-ready .nm-password-toggle:hover {background:#edf5fb;}
body.task-login.nm-login-ready .nm-password-toggle:focus-visible {outline:2px solid #3289cc;outline-offset:2px;}
body.task-login.nm-login-ready .nm-login-icon {display:block;flex:0 0 21px;width:21px;height:21px;background-color:currentColor;
  -webkit-mask-position:center;-webkit-mask-repeat:no-repeat;-webkit-mask-size:contain;
  mask-position:center;mask-repeat:no-repeat;mask-size:contain;
}
body.task-login.nm-login-ready [data-icon="eye"] {-webkit-mask-image:url('../icons/eye.svg');mask-image:url('../icons/eye.svg');}
body.task-login.nm-login-ready [data-icon="eye-off"] {-webkit-mask-image:url('../icons/eye-off.svg');mask-image:url('../icons/eye-off.svg');}
body.task-login.nm-login-ready [data-icon="shield-check"] {-webkit-mask-image:url('../icons/shield-check.svg');mask-image:url('../icons/shield-check.svg');}
body.task-login.nm-login-ready #rcmloginsubmit,
body.task-login.nm-login-ready #login-form button[type="submit"] {
  width:100% !important;min-height:55px !important;display:block !important;
  margin:22px 0 0 !important;padding:12px 18px !important;
  background:linear-gradient(100deg,#087fe4,#0671d2) !important;color:white !important;
  border:0 !important;border-radius:11px !important;font-size:17px !important;font-weight:650 !important;
  box-shadow:none !important;cursor:pointer !important;
}
body.task-login.nm-login-ready #rcmloginsubmit:hover,
body.task-login.nm-login-ready #login-form button[type="submit"]:hover {background:linear-gradient(100deg,#066fc5,#055fb4) !important;}
body.task-login.nm-login-ready #login-footer {font-size:12px;text-align:center;color:#8291a3;margin-top:20px;}
body.task-login.nm-login-ready .nm-login-security {display:flex;align-items:center;justify-content:center;gap:9px;margin-top:29px;color:#667b92;font-size:13px;}
/* Keep all native login errors and warning banners visible. */
body.task-login.nm-login-ready #message,
body.task-login.nm-login-ready #messagestack,
body.task-login.nm-login-ready .alert {z-index:10;}
@media(max-width:950px) {
  body.task-login.nm-login-ready .nm-login-brand {padding:39px 32px 27px;}
  body.task-login.nm-login-ready .nm-login-panel {padding:42px 35px;}
  body.task-login.nm-login-ready .nm-brand-by {margin-left:25px;}
}
@media(max-width:690px) {
  body.task-login.nm-login-ready {background:#f2f6fa !important;}
  body.task-login.nm-login-ready #layout-content {padding:0 !important;display:block !important;}
  body.task-login.nm-login-ready .nm-login-card {display:flex;flex-direction:column;border-radius:0;min-height:100vh;min-height:100dvh;width:100%;box-shadow:none;}
  body.task-login.nm-login-ready .nm-login-brand {flex:0 0 auto;padding:24px 25px;}
  body.task-login.nm-login-ready .nm-brand-logo {width:min(225px,85%);}
  body.task-login.nm-login-ready .nm-brand-by {font-size:12px;margin:2px 0 0 35px;}
  body.task-login.nm-login-ready .nm-brand-main,
  body.task-login.nm-login-ready .nm-brand-footer {display:none;}
  body.task-login.nm-login-ready .nm-login-panel {flex:1;align-items:flex-start;padding:45px 27px 55px;}
  body.task-login.nm-login-ready .nm-login-heading h2 {font-size:33px;}
  body.task-login.nm-login-ready .nm-login-heading p {font-size:15px;}
}
@media(prefers-reduced-motion:reduce) {
  body.task-login.nm-login-ready * {scroll-behavior:auto !important;transition:none !important;}
}

/* ============================================================
   NOWMAIL LOGIN - FIX CAMPO NOME UTENTE
   ============================================================ */

/* Contenitore icona + campo */
body.task-login.nm-login-ready #login-form .input-group {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;

    flex-wrap: nowrap !important;

    width: 100% !important;
    min-width: 0 !important;
}

/* Contenitore dell'icona */
body.task-login.nm-login-ready #login-form .input-group-prepend {
    display: flex !important;
    align-items: stretch !important;

    flex: 0 0 auto !important;

    width: auto !important;
    margin: 0 !important;
}

/* Icona a sinistra */
body.task-login.nm-login-ready #login-form .input-group-text {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    width: 42px !important;
    min-width: 42px !important;
    height: 53px !important;

    padding: 0 !important;
    margin: 0 !important;

    border-radius: 10px 0 0 10px !important;
    border-right: 0 !important;
}

/* Campo di inserimento */
body.task-login.nm-login-ready #login-form .input-group > input {
    display: block !important;

    flex: 1 1 0% !important;

    width: 1% !important;
    min-width: 0 !important;

    margin: 0 !important;

    border-radius: 0 10px 10px 0 !important;
}

/* Contenitore password: mantiene la larghezza corretta */
body.task-login.nm-login-ready #login-form .nm-password-wrap {
    flex: 1 1 0% !important;
    min-width: 0 !important;
}
