.tag-input-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}

.scan-button {
  min-width: 68px;
  padding: 8px 10px;
  border: 1px solid #238064;
  border-radius: 8px;
  color: #17634e;
  background: #edf8f3;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.scan-button:hover { color: #fff; background: #187056; }
.tag-status { min-height: 13px; font-size: 10px; font-weight: 700; }
.tag-status.available { color: #277057; }
.tag-status.unavailable { margin-top: 2px; padding: 7px 9px; border: 1px solid #e49a8e; border-radius: 7px; color: #8f2117; background: #fff0ed; box-shadow: 0 4px 13px rgba(177, 48, 35, .14); }
.tag-input-group.tag-error input { border-color: #d74837!important; background: #fff6f4!important; box-shadow: 0 0 0 3px rgba(215,72,55,.14)!important; animation: tag-shake .28s linear 2; }
.tag-input-group.tag-valid input { border-color: #26906b!important; background: #f2fbf7!important; }
.tag-locked { cursor: not-allowed!important; color: #4f5f58!important; border-color: #d7ddd8!important; background: #edf2ef!important; opacity: 1!important; }
@keyframes tag-shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-4px)} 75%{transform:translateX(4px)} }
