.mn-auth-card { max-width: 480px; margin: 0 auto; }
.mn-field { position: relative; margin-bottom: 1rem; }
.mn-field input {
  width: 100%; padding: .85rem 1rem .85rem 2.8rem;
  border: 1.5px solid var(--mn-border-2); border-radius: var(--mn-radius, 12px);
  font-size: .95rem; background: var(--mn-surface);
  transition: border-color .2s, box-shadow .2s;
}
.mn-field input:focus { border-color: var(--mn-accent); box-shadow: 0 0 0 3px rgba(194,65,12,.12); outline: none; }
.mn-field .mn-icon { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--mn-muted); font-size: 1.1rem; pointer-events: none; }
.mn-field label { display: block; font-size: .82rem; font-weight: 600; color: var(--mn-ink-2); margin-bottom: .35rem; }
.mn-field.has-label .mn-icon { top: calc(50% + .55rem); }

.mn-field input.is-invalid { border-color: #dc3545; }
.mn-field input.is-valid { border-color: #198754; }
.mn-field-error { font-size: .78rem; color: #dc3545; margin-top: .25rem; min-height: 1.1rem; }

.mn-strength { display: flex; gap: 4px; margin-top: .35rem; }
.mn-strength-bar { flex: 1; height: 4px; border-radius: 2px; background: var(--mn-border); transition: background .3s; }
.mn-strength-bar.weak { background: #dc3545; }
.mn-strength-bar.fair { background: #fd7e14; }
.mn-strength-bar.good { background: #ffc107; }
.mn-strength-bar.strong { background: #198754; }
.mn-strength-label { font-size: .72rem; color: var(--mn-muted); margin-top: .15rem; }

.mn-btn-register {
  background: var(--mn-accent); color: #fff; border: none; padding: .85rem;
  border-radius: var(--mn-radius, 12px); font-size: 1rem; font-weight: 700;
  width: 100%; cursor: pointer; transition: background .2s, transform .1s;
}
.mn-btn-register:hover { background: var(--mn-accent-h); }
.mn-btn-register:active { transform: scale(.98); }
.mn-btn-register:disabled { opacity: .6; cursor: not-allowed; }

.mn-alert-error {
  background: #fef2f2; border: 1px solid #fecaca; border-radius: var(--mn-radius, 12px);
  padding: .85rem 1rem; margin-bottom: 1.25rem; font-size: .85rem; color: #991b1b;
}
.mn-alert-error ul { margin: .35rem 0 0 1rem; padding: 0; }
.mn-alert-error li { margin-bottom: .2rem; }

.mn-divider { display: flex; align-items: center; gap: .75rem; margin: 1.25rem 0; color: var(--mn-muted); font-size: .8rem; }
.mn-divider::before, .mn-divider::after { content: ''; flex: 1; height: 1px; background: var(--mn-border); }