.form-container{
  text-align:center;
  max-width:860px;
  width:100%;
  margin:0 auto;
  padding:0 16px;
}

/* 3-колоночная строка: слева лейбл, по центру поле, справа кнопка */
.controls-3{
  display:grid;
  grid-template-columns: max-content minmax(260px,1fr) 180px; /* поле шире, кнопка удобнее */
  gap:14px;
  align-items:center;
  margin-top:8px;
}

/* подпись слева — по центру и без переноса */
.label-enter{
  white-space:nowrap;
  text-align:right;
  font-size:18px;
  line-height:1; /* ровная вертикаль */
}

/* увеличенное поле ввода */
.form-input{
  width:100%;
  height:56px;
  padding:12px 14px;
  border:2px solid #000;
  border-radius:10px;
  font-size:22px;
  font-weight:600;
  letter-spacing:.06em;           /* читабельнее коды */
  text-transform:uppercase;       /* коды в верхнем регистре */
  box-sizing:border-box;
  transition:border-color .2s ease, box-shadow .2s ease, transform .02s ease;
}

.form-input::placeholder{ color:#999; }
.form-input:focus{
  outline:none;
  border-color:#2a7bff;
  box-shadow:0 0 0 4px rgba(42,123,255,.15);
}

/* кнопка */
.form-button{
  width:100%;
  height:56px;
  border:none;
  background:#2fbf71;            /* чуть ярче зелёный */
  color:#fff;
  border-radius:10px;
  font-size:18px;
  font-weight:700;
  cursor:pointer;
  transition:transform .06s ease, box-shadow .2s ease, background .2s ease;
  box-shadow:0 6px 16px rgba(47,191,113,.28);
}

.form-button:hover:not(:disabled){ background:#28a862; }
.form-button:active:not(:disabled){ transform:translateY(1px); }
.form-button:disabled{
  background:#b8c2cc;
  box-shadow:none;
  cursor:not-allowed;
}

/* флажки — ровная сетка, можно легко выровнять вправо, если нужно */
.flags{
  display:flex;
  justify-content:center;         /* поменяй на flex-end, чтобы увести вправо */
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:18px 0 16px;
}
.flag{
  width:42px; height:auto;
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease;
  user-select:none;
}
.flag:hover{ transform:scale(1.12); filter:saturate(1.15); }

/* область статуса — фиксированная высота, чтобы не дёргался макет */
.status-message{
  margin-top:16px;
  min-height:56px;                /* резервируем место под сообщение */
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

/* успех/ошибка — “карточки” (сочетается с твоими статус-классами) */
.status-valid{
  color:#0f5132;
  background:#d1e7dd;
  border:2px solid #0f5132;
  border-radius:12px;
  padding:10px 16px;
  font-weight:800;
  box-shadow:0 0 15px rgba(16,185,129,.35);
}
.status-invalid{
  color:#842029;
  background:#f8d7da;
  border:2px solid #842029;
  border-radius:12px;
  padding:10px 16px;
  font-weight:800;
  box-shadow:0 0 12px rgba(220,53,69,.25);
}

/* адаптив: на узких — лейбл наверх, поле и кнопка столбиком */
@media (max-width:820px){
  .controls-3{
    grid-template-columns: 1fr;
    gap:10px;
  }
  .label-enter{ text-align:center; font-size:17px; }
}

/* лёгкая анимация появления статуса (без тряски) */
@media (prefers-reduced-motion: no-preference){
  .status-valid, .status-invalid{
    animation: fadePop .18s ease-out;
  }
  @keyframes fadePop{
    from{ transform:scale(.98); opacity:.4; }
    to{ transform:scale(1); opacity:1; }
  }
}
