/* Nawili — page de connexion : habille le composant <ns-login> (inchangé) aux couleurs de l'identité publique. Portée limitée à .np-login-card. */
html.np-login-html, html.np-login-html body { background: #FBFCFF !important; color: var(--np-ink); font-family: var(--np-font); }
html.np-login-html #page-container { background: transparent; height: auto; }
.np-login-page .np-main { justify-content: center; }
.np-login-card { width: 100%; max-width: 440px; margin: 0 auto; padding: clamp(24px, 4vw, 36px); background: var(--np-card); border-radius: 26px; box-shadow: var(--np-shadow); border: 1px solid rgba(227, 231, 250, .8); animation: np-rise .6s ease both; }
.np-login-logo { display: block; width: 112px; height: auto; margin: 0 auto 6px; }
.np-login-title { margin: 6px 0 4px; text-align: center; font-size: 1.6rem; letter-spacing: -.02em; color: var(--np-navy); }
.np-login-sub { margin: 0 0 18px; text-align: center; color: var(--np-muted); }
.np-login-help { margin: 16px 0 0; text-align: center; color: var(--np-muted); font-size: .9rem; }
/* le composant : carte, champs, bouton */
.np-login-card .ns-box, .np-login-card .ns-box-body, .np-login-card .ns-box-footer { background: transparent !important; border: 0 !important; box-shadow: none !important; padding-left: 0 !important; padding-right: 0 !important; }
.np-login-card .ns-box-footer { padding-top: 6px !important; justify-content: stretch; }
.np-login-card .ns-box-footer > div { width: 100%; }
.np-login-card label, .np-login-card .ns-label { color: var(--np-navy) !important; font-weight: 700; font-size: .95rem; }
.np-login-card input[type="text"], .np-login-card input[type="email"], .np-login-card input[type="password"] {
  width: 100%; min-height: 50px; padding: 0 16px; font: inherit; font-size: 1rem; color: var(--np-ink) !important; background: #fff !important;
  border: 1.5px solid #D5DAF5 !important; border-radius: 14px !important; box-shadow: none !important; transition: border-color .15s, box-shadow .15s;
}
.np-login-card input:focus { outline: none; border-color: var(--np-blue) !important; box-shadow: 0 0 0 4px rgba(61, 92, 255, .15) !important; }
.np-login-card .border-gray-400, .np-login-card .border { border-color: #D5DAF5 !important; }
.np-login-card p.text-xs, .np-login-card .text-xs { color: var(--np-muted) !important; }
.np-login-card .text-red-600, .np-login-card .text-red-400, .np-login-card .text-error-secondary { color: #C0213B !important; }
.np-login-card button, .np-login-card a.ns-button, .np-login-card .ns-button { width: 100%; }
.np-login-card .ns-button button, .np-login-card button.ns-button, .np-login-card .ns-button.info button {
  width: 100%; min-height: 52px; justify-content: center; border-radius: 999px !important; border: 0 !important; color: #fff !important; font-weight: 700; font-size: 1rem;
  background: linear-gradient(135deg, #3D5CFF 0%, #6D5CF6 55%, #8B5CF6 100%) !important; box-shadow: 0 12px 28px -10px rgba(61, 92, 255, .65) !important;
}
.np-login-card .ns-button button:hover { filter: brightness(1.05); }
.np-login-card .ns-button button:focus-visible { outline: 3px solid var(--np-blue); outline-offset: 3px; }
.np-login-card a { color: var(--np-blue) !important; }
@media (max-width: 520px) { .np-login-card { border-radius: 22px; } }
