/* =====================================================================
   Поля форм — спільні для екранів входу й налаштувань
   ===================================================================== */
.form { display: flex; flex-direction: column; gap: 14px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field-label { font-size: .95rem; color: #6b3b1a; padding-left: 4px; }
.field-box {
  position: relative; display: flex; align-items: center;
  min-height: 54px; border-radius: var(--r-md);
  background: #fff; border: 2px solid #ecd6ad;
  box-shadow: inset 0 3px 0 rgba(107,59,26,.06);
  transition: border-color .15s, box-shadow .15s;
}
.field-box:focus-within { border-color: #45b336; box-shadow: 0 0 0 4px rgba(69,179,54,.18); }
.field-icon { width: 46px; text-align: center; font-size: 1.2rem; flex: none; }
.field input {
  flex: 1; min-width: 0; height: 50px; padding: 0 14px 0 0;
  border: 0; outline: 0; background: transparent;
  font-size: 1.05rem; font-weight: 800; color: var(--ink);
}
.field input::placeholder { color: #c2ad8f; }
.field-eye {
  flex: none; width: 46px; height: 46px; margin-right: 4px; border: 0; border-radius: 12px;
  background: transparent; cursor: pointer; font-size: 1.1rem; opacity: .6;
}
.field-eye[aria-pressed="true"] { opacity: 1; }
.field-hint { font-size: .8rem; color: var(--ink-soft); padding-left: 4px; }
.field-error { min-height: 0; font-size: .85rem; color: var(--err); padding-left: 4px; }
.field-error:empty { display: none; }
.field.has-error .field-box { border-color: var(--err); box-shadow: 0 0 0 4px rgba(214,64,47,.14); animation: shake .35s; }
@keyframes shake { 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }

.strength { height: 6px; border-radius: 6px; background: #f1e3c7; overflow: hidden; }
.strength i { display: block; height: 100%; width: 0; border-radius: 6px; transition: width .25s, background .25s; }

